Ich habe ein Skript in Ubuntu 9.04 in init.d, das ich so eingestellt habe, dass es beim Start mit update-rc.d ausgeführt wird, wobei update-rc.d init_test defaults 99 verwendet wird. Alle symbolischen Links sind vorhanden und die Berechtigungen scheinen korrekt zu sein
-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
Das Skript läuft ohne Probleme durch die Quelle und ./ und verhält sich korrekt. Hier ist die Quelle des Skripts:
#!/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 $?
Wenn die Maschine startet, sehe ich in der Datei test.log überhaupt nicht „Skript aufgerufen“ oder „Start aufgerufen“. Ist da offensichtlich etwas falsch, das ich falsch mache?
Antwort1
Ich habe herausgefunden, was schief lief. Es gab ein völlig unabhängiges Skript, das beim Start blockiert wurde, weil es vom Benutzer einen Tastendruck verlangte, was alle anderen Startskripte zu blockieren scheint. Gibt es eine Möglichkeit, solche Probleme zu beheben, beispielsweise durch Protokollieren, welche init.d-Skripte ausgeführt werden?