Cómo ejecutar un script de shell como un servicio SystemD en Linux

16 apr 2021 2 min di lettura
Cómo ejecutar un script de shell como un servicio SystemD en Linux
Indice dei contenuti

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 .servicey 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.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.