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