Añadir un servicio al inicio del sistema – Centos

Para arrancar una aplicación con el inicio del sistema, lo primero que debemos hacer es crear un archivo con la lógica para el programa en cuestión en la carpeta /etc/init.d/

El siguiente ejemplo es el archivo de servicio para Glassfish

#!/bin/bash
#
# glassfish: Startup script for Glassfish Application Server.
#
# chkconfig: 3 80 05
# description: Startup script for domain1 of Glassfish Application Server.

GLASSFISH_HOME=/home/glassfish/glassfish3/glassfish;
export GLASSFISH_HOME
GLASSFISH_OWNER=glassfish;
export GLASSFISH_OWNER

start() {
   echo -n "Starting Glassfish: "
   echo "Starting Glassfish at `date`" >> $GLASSFISH_HOME/domains/domain1/logs/startup.log
   su $GLASSFISH_OWNER -c "$GLASSFISH_HOME/bin/asadmin start-domain domain1" >> $GLASSFISH_HOME/domains/domain1/logs/startup.log
   sleep 2
   echo "done"
   }

stop() {
   echo -n "Stopping Glassfish: "
   echo "Stopping Glassfish at `date`" >> $GLASSFISH_HOME/domains/domain1/logs/startup.log
   su $GLASSFISH_OWNER -c "$GLASSFISH_HOME/bin/asadmin stop-domain domain1" >> $GLASSFISH_HOME/domains/domain1/logs/startup.log
   echo "done"
   }

# See how we were called.

case "$1" in
start)
   start
;;
stop)
   stop
;;
restart)
   stop
   start
;;
*)
   echo $"Usage: glassfish {start|stop|restart}"
exit

esac

Una vez creado este archivo, le cambiamos los permisos para hacerlo ejecutable, lo damos de alta como servicio y lo añadimos al nivel de ejecución deseado con el comando  chkconfig.

chmod +x /etc/init.d/glassfish
chkconfig --add glassfish
chkconfig --level 3 glassfish on

Listo.

Sigue un resumen de los niveles de ejecución como recordatorio:

Generally, Red Hat Linux operates in runlevel 3 — full multi-user mode. The following runlevels are defined in Red Hat Linux:

  • 0 — Halt
  • 1 — Single-user mode
  • 2 — Not used (user-definable)
  • 3 — Full multi-user mode
  • 4 — Not used (user-definable)
  • 5 — Full multi-user mode (with an X-based login screen)
  • 6 — Reboot