LinuxParty
Los sistemas Linux modernos usan systemd para administrar los demonios y la configuración del sistema. Systemd es un administrador de servicios y un sistema de inicialización, que reemplazó a SysvInit y existe desde hace casi una década.
Realiza varias tareas, como la gestión de demonios (iniciar, detener, deshabilitar y habilitar servicios), soporte de instantáneas y seguimiento de procesos, entre otros . Actualmente, es el sistema de inicialización predeterminado en la mayoría de las distribuciones de Linux.
Puede crear fácilmente un script personalizado que se puede ejecutar como un servicio systemd . En esta guía, veremos cómo puede ejecutar un script en un systemd justo antes de que el sistema se apague en un sistema Linux .
Para fines de demostración, estamos utilizando el servidor Rocky Linux 8. Pero serviría igualmente en RHEL, Fedora, AlmaLinux, etc.
Paso 1: Crear un Script de muestra
El primer paso es crear un script de shell que se ejecutará antes del apagado. Para fines de demostración, crearemos un script de shell simple llamado "sample_script.sh
" que retrasa el apagado del sistema en 30 segundos .
Para ejecutar el script justo antes de que el sistema se apague, debe colocar el script en el directorio "/usr/lib/systemd/system-shutdown
". Antes de ejecutar el apagado real, todos los ejecutables binarios en el directorio "usr/lib/systemd/system-shutdown
" se ejecutarán en paralelo.
La ejecución de la acción no continúa hasta que se completan todos los archivos ejecutables.
$ sudo vim /usr/lib/systemd/system-shutdown/sample_script.sh
El script de shell simple que retrasa el apagado del sistema por 30 segundos se ve como se muestra a continuación.
#!/bin/bash # Un script que obliga al sistema a esperar 30 segundos antes de apagarse sleep 30
Guarde y salga del archivo. A continuación, haga que el script sea ejecutable.
$ sudo chmod u+x /usr/lib/systemd/system-shutdown/sample_script.sh
Paso 2: Cree un archivo de unidad Systemd para ejecutar el script de Shell
El siguiente paso es crear un archivo de unidad systemd para ejecutar el script de shell antes de que se apague el sistema. Crearemos el "execute-before-shutdown.service
" archivo de servicio systemd como se muestra.
$ sudo vim /etc/systemd/system/execute-before-shutdown.service
Pegue las siguientes líneas de código .
[Unit] Description=Execute custom script before system poweroff DefaultDependencies=no Before=shutdown.target [Service] Type=oneshot ExecStart=/usr/lib/systemd/system-shutdown/sample_script.sh TimeoutStartSec=0 [Install] WantedBy=shutdown.target
La tarea crucial aquí la realizan las directivas "Before=shutdown.target
" y "TimeoutStartSec=0
" .
Guarde los cambios y salga del archivo. A partir de entonces, actualice el archivo de configuración de systemd y habilite el script para que se inicie automáticamente la próxima vez que se encienda el sistema.
$ sudo systemctl daemon-reload $ sudo systemctl enable execute-before-shutdown.service --now
Paso 3: Confirme el archivo de la unidad Systemd
Para confirmar que el script se está ejecutando antes de que el sistema se apague, simplemente ejecute el siguiente comando de apagado como se muestra:
$ sudo poweroff
Observará que el proceso de apagado se retrasará 30 segundos antes de que el sistema finalmente se apague.
Conclusión
Esperamos que los pasos descritos en esta guía le hayan dado una idea de cómo puede ejecutar un script de shell usando systemd en un sistema Linux.

-
Artículos
- Trabajos Remotos Atractivos para Desarrolladores ganando hasta 9000 euros al mes.
- Alternativas a Plesk y cPanel: los 10 mejores paneles gratuitos de alojamiento web de código abierto
- 3 herramientas de línea de comandos para instalar paquetes Deb en Ubuntu, Debian y Linux Mint
- AlmaLinux se une a openQA para mejorar las pruebas automatizadas en Linux
- Comer tarde por la noche aumenta el hambre y el riesgo de aumento de peso, según un estudio
- Marruecos apuesta fuerte por la automoción propia con vehículos de hidrógeno 'made in Morocco'
- NYT: Este es el fin de la programación tal como la conocemos
- GEN-2: La nueva IA que transforma texto en videos asombrosos de manera gratuita
- Mr. Bean, el actor Rowan Atkinson, expresa preocupaciones sobre la electrificación y aboga por el desarrollo de combustibles sintéticos
- Instale el panel de alojamiento web EHCP en Ubuntu 12.04 / 12.10 / 13.04 / 13.10 / 14.04
- Elon Musk besó un Robot: un truco de relaciones públicas o un vistazo al futuro de la tecnología?
- Las 7 mejores aplicaciones para instalar en su instancia de Nextcloud