Tengo un script en ubuntu 9.04 en init.d que configuré para ejecutar al inicio con update-rc.d usando update-rc.d init_test defaults 99. Todos los enlaces simbólicos están ahí y los permisos parecen ser correcto
-rwxr-xr-x 1 root root 642 2010-10-28 16:44 init_test
mike@xxxxxxxxxx:~$ find /etc -name S99* | grep init_test
find: /etc/rc5.d/S99init_test
find: /etc/rc4.d/S99init_test
find: /etc/rc2.d/S99init_test
find: /etc/rc3.d/S99init_test
El script se ejecuta a través del código fuente y ./ sin problemas y se comporta correctamente. Aquí está la fuente del guión:
#!/bin/bash
### BEGIN INIT INFO
# Provides: init test script
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO
start() {
echo "hi"
echo "start called" >> /tmp/test.log
return
}
stop() {
echo "Stopping"
}
echo "Script called" >> /tmp/test.log
case "$1" in
start)
start
;;
stop)
stop
;;
*)
echo "Usage: {start|stop|restart}"
exit 1
;;
esac
exit $?
Cuando se inicia la máquina, no veo "script llamado" o "inicio llamado" en test.log en absoluto. ¿Hay algo obvio que estoy arruinando?
Respuesta1
Descubrí lo que estaba saliendo mal. Había una secuencia de comandos completamente ajena que se bloqueaba al inicio porque solicitaba que el usuario presionara una tecla, lo que parece detener todas las demás secuencias de comandos de inicio. ¿Hay alguna manera de solucionar problemas como ese, como registrar qué scripts init.d se ejecutan?