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