Pregunta:
Creo que leí algo hace un tiempo sobre esto, pero no recuerdo cómo se hizo. Básicamente, tengo un servicio en /etc/init.d
que me gustaría iniciar automáticamente en el momento del arranque. Recuerdo que tiene algo que ver con el enlace simbólico del script en el directorio /etc/rc.d
, pero no lo recuerdo en este momento. ¿Cuál es el comando para esto?
Creo que estoy en un derivado de Fedora / CentOS.
Respuesta:
Si está en un sistema basado en Red Hat, como mencionó, puede hacer lo siguiente:
- Cree un script y colóquelo en
/etc/init.d
(por ejemplo,/etc/init.d/myscript
). La secuencia de comandos debe tener el siguiente formato:
#!/bin/bash
# chkconfig: 2345 20 80
# description: Description comes here....
# Source function library.
. /etc/init.d/functions
start() {
# code to start app comes here
# example: daemon program_name &
}
stop() {
# code to stop app comes here
# example: killproc program_name
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
# code to check status of app comes here
# example: status program_name
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
esac
exit 0
El formato es bastante estándar y puede ver los scripts existentes en /etc/init.d
. Luego puede usar el script como /etc/init.d/myscript start
o chkconfig myscript start
. La página de manual de ckconfig
explica el encabezado del script:
> This says that the script should be started in levels 2, 3, 4, and
> 5, that its start priority should be 20, and that its stop priority
> should be 80.
El ejemplo de código de inicio, parada y estado utiliza funciones auxiliares definidas en /etc/init.d/functions
-
Habilitar la secuencia de comandos
$ chkconfig --add myscript $ chkconfig --level 2345 myscript on
-
Verifique que la secuencia de comandos esté habilitada; debería ver "activado" para los niveles que seleccionó.
$ chkconfig --list | grep myscript