Cómo crear un servicio en linux
En ocasiones necesitamos que una aplicación que hayamos creado se inicie como un demonio de Linux. Para ello hemos de hacer lo siguiente:
- Crearemos un achivo en la siguiente ruta:
/etc/init.d/nombre_servicio
- El contenido del archivo sería:
- nombre_servicio
#! /bin/sh NAME=nombre_servicio DESC="Demonio del nombre_servicio" PIDFILE="/var/run/${NAME}.pid" LOGFILE="/var/log/${NAME}.log" #indicamos que vamos a ejecutar un archivo PHP DAEMON="/usr/bin/php" #Ruta del archivo DAEMON_OPTS="/var/www/myproject/myscript.php" START_OPTS="--start --background --make-pidfile --pidfile ${PIDFILE} --exec ${DAEMON} ${DAEMON_OPTS}" STOP_OPTS="--stop --pidfile ${PIDFILE}" test -x $DAEMON || exit 0 set -e case "$1" in start) echo -n "Starting ${DESC}: " start-stop-daemon $START_OPTS >> $LOGFILE echo "$NAME." ;; stop) echo -n "Stopping $DESC: " start-stop-daemon $STOP_OPTS echo "$NAME." rm -f $PIDFILE ;; restart|force-reload) echo -n "Restarting $DESC: " start-stop-daemon $STOP_OPTS sleep 1 start-stop-daemon $START_OPTS >> $LOGFILE echo "$NAME." ;; *) N=/etc/init.d/$NAME echo "Usage: $N {start|stop|restart|force-reload}" >&2 exit 1 ;; esac exit 0
- Donde tendremos que cambiar el contenido de las líneas siguientes, para ajustarlo a nuestras necesidades.
- NAME
- DESC
- DAEMON
- DAEMON_OPTS
- Una vez creado el archivo con el contenido mencionado anteriormente, tendremos que darle permisos de ejecución (0755).
chmod +x /etc/init.d/nombre_servicio
- Tras éstos pasos ya podremos usar los siguientes comandos:
sudo service nombre_servicio start sudo service nombre_servicio restart sudo service nombre_servicio stop
NOTA: Si no se usa SUDO puede no funcionar correctamente, según el usuario que lo trate de ejecutar.
Agradecimiento a la <html><a href=“https://geekytheory.com/crear-un-servicio-en-linux” target=“blank”> Fuente Original</a>.</html>