Crear un servicio en Ubuntu con systemd

Systemd es un gestor de servicios que hay en Ubuntu desde la versión 15 y crear servicios es tan sencillo como crear un archivo en /etc/systemd/system/ con la extensión .service y los siguientes parámetros:

/etc/systemd/system/myservice.service

[Unit]
Description=Una descripción del servicio
After=network.target mysql.service

[Service]
Type=simple
User=www-data
ExecStart=/path-to-file/file.sh
WorkingDirectory=/usr/local/src
Restart=on-failure

[Install]
WantedBy=multi-user.target

Las opciones más importantes a modificar son:

User: El usuario que ejecutará el servicio
ExecStart: El ejecutable en cuestión
WorkingDirectory: El directorio desde donde se ejecutará

También es importante:

After: establece los servicios que deben ejecutarse antes de que se ejecute este, para evitar errores si nuestro servicio necesita por ejemplo que MySQL esté activado.

Una vez creado el archivo del servicio hay que reiniciar systemd con:

$ sudo systemctl daemon-reload

Y ahora si que ya podemos gestionar nuestro servicio con los siguientes comandos:

$ sudo systemctl start myservice
$ sudo systemctl restart myservice
$ sudo systemctl stop myservice
$ sudo systemctl status myservice

Deja un comentario