Este es un pequeño howto para configurar programas que se arranquen con el sistema operativo, para configurar lo que se llaman servicios del sistema. Estos servicios del sistema en GNU/Linux se llaman también demonios del sistema.
Los servicios como Apache, PHP-fpm, Redis, Mysql.. se instalan como servicios del sistema. Para crear un servicio del sistema simplemente hay que crear un fichero en el directorio /etc/systemd/system/ o /lib/systemd/system/ de una forma estandarizada. Si miramos alguno de los archivos ya creados podemos ver algo como el siguiente:
Otro fichero de servicio podría ser como el siguiente, para arrancar el servicio de escaneo automático de ClamAV, el fichero podría nombrarse clamonacc.service:
[Unit]
Description=ClamAV On Access
Requires=clamav-daemon.service
After=clamav-daemon.service syslog.target nss-lookup.target network.target
[Service]
Type=simple
User=root
ExecStart=/usr/bin/clamonacc -F --log=/var/log/clamav/clamonacc.log --move=/home/usuario/quarantine
Restart=on-failure
RestartSec=60s
[Install]
WantedBy=multi-user.target
Una vez creado el fichero del servicio hay que cargarlo en el sistema. Para esto tenemos los comandos de control de systemctl. Algunos de los principales podrían ser:
- sudo systemctl status [nombreServicio]
- sudo systemctl restart [nombreServicio]
- sudo systemctl start [nombreServicio]
- sudo systemctl stop [nombreServicio]
- sudo systemctl daemon-reload
- Etcétera..
Cuando recién hemos creado el fichero del servicio, o cuando cambiamos ficheros de configuraciones, hay que recargar el daemon, aparte de reiniciarlo o habilitarlo. Para hacer esto bastaría con hacer algo como:
sudo systemctl daemon-reload
sudo systemctl enable [nombreServicio]
sudo systemctl start [nombreServicio]
Dejo aquí más referencias a una documentación oficial sobre Systemd, que he encontrado que me parece que está muy bien, para el que quiera seguir con el tema:
https://wiki.archlinux.org/index.php/systemd_(Espa%C3%B1ol)