Introducción
Systemd es una aplicación de software que proporciona varios componentes de sistema para sistemas operativos Linux. Es el primer servicio que inicializa la secuencia de inicio. Siempre funciona con pid 1. Esto también ayuda a administrar el sistema y el servicio de aplicaciones en nuestro sistema operativo Linux.
También podemos ejecutar cualquier script personalizado como un servicio systemd. Ayuda a que la secuencia de comandos se inicie al iniciar el sistema. Esto puede ser útil para ejecutar cualquier script que deba ejecutarse solo al inicio o para ejecutarse todo el tiempo.
Este tutorial explica cómo ejecutar un script de shell como un servicio de Systemd.
Crear un script de shell
En primer lugar, cree un script de shell de ejemplo para que se ejecute siempre mientras el sistema esté en funcionamiento.
sudo vi /usr/bin/script.sh
Agregue la siguiente secuencia de comandos de muestra:
#!/bin/bash
while true
do
// Your statements here
sleep 10
done
Guarde el script y establezca los permisos de ejecución con el comando chmod:
sudo chmod +x /usr/bin/script.sh
No se requiere un ciclo infinito para ejecutar un script una vez durante el inicio del sistema. En lugar de la secuencia de comandos anterior, puede utilizar la secuencia de comandos de shell para ejecutar como un servicio Systemd.
Crear un archivo SystemD
Cree un archivo de servicio para systemd en su sistema. Este archivo debe tener extensión .service
y estar guardado en el directorio /lib/systemd/system/
:
sudo vi /lib/systemd/system/shellscript.service
Ahora agregue el siguiente contenido y actualice el nombre y la ruta del archivo de secuencia de comandos. También puede cambiar la descripción del servicio:
[Unit]
Description=My Shell Script
[Service]
ExecStart=/usr/bin/script.sh
[Install]
WantedBy=multi-user.target
Habilite el nuevo servicio
El servicio de su sistema se ha agregado a su servicio. Recarguemos el demonio systemctl para leer el nuevo archivo. Debe volver a cargar este demonio cada vez que realice cambios en el archivo .service.
sudo systemctl daemon-reload
Ahora habilite el inicio del servicio al inicio del sistema, también inicie el servicio usando los siguientes comandos:
sudo systemctl enable shellscript.service
sudo systemctl start shellscript.service
Finalmente, verifique que el script esté funcionando como un servicio systemd:
sudo systemctl status shellscript.service
Conclusión
Este tutorial lo ayudó a configurar e iniciar un script de shell como un servicio systemd en Linux.