Ich versuche, god
während des Bootens auf Debian zu starten. Ich habe dem /etc/init.d/
Verzeichnis ein Skript hinzugefügt, das so aussieht.
#!/usr/bin/sh
### BEGIN INIT INFO
# Provides: god
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start god process monitoring
# Description: Start god process monitoring
### END INIT INFO
god_conf="absolute/path/to/god.conf"
god_pid_file="/var/run/god/god.pid" ; mkdir -p `dirname $god_pid_file`
god_log_file="/var/log/god/god.log" ; mkdir -p `dirname $god_log_file`
case "$1" in
start)
god -c "$god_conf" -P "$god_pid_file" -l "$god_log_file"
RETVAL=$?
echo "God started"
;;
...
Ich habe den folgenden Befehl ausgeführt, um die erforderlichen symbolischen Links zu erstellen sudo update-rc.d god defaults
Wenn ich den Computer jedoch neu starte, scheint Gott nicht anzufangen. Meine Frage ist, wie kann ich dieses Problem beheben?
Ich habe angeschaut dmesg
und sehe nichts damit zu tun god
. Ich habe mir auch das angeschaut syslog
und dort nichts gesehen. Außerdem ist die god.log
Datei leer und es gibt keine god.pid
Datei.
Ich weiß nicht, ob das Problem darin besteht, dass mein Init-Skript nicht einmal aufgerufen wird oder ob es fehlschlägt, wenn es versucht, Gott zu starten. Ich habe versucht, Gott manuell durch Laufen zu starten, sudo /etc/init.d/god start
und das scheint gut zu funktionieren. Irgendwelche Ideen?
exec > /var/log/god/initlog 2>&1
als erste Anweisung nach demmkdir
s hinzuzufügen , damit Sie genau sehen können, was los ist.ls -l /etc/rc.d/*god
.mkdir
sls -l /etc/rc.d/*god
und bekomme eine Fehlermeldungcannot access /etc/rc.d/*god: No such file or directory
. Withink / etc / gibt es kein rc.d-Verzeichnis, jedoch hat es die folgenden Verzeichnisserc0.d/ rc1.d/ rc2.d/ rc3.d/ rc4.d/ rc5.d/ rc6.d/ rcS.d/
ls -l /etc/rc?.d/*god
- aber tatsächlich ist Ihr Problem vermutlich die schlechte Shebang-Linie, die ich später entdeckt habe.Antworten:
Der normale Ort von
sh
, in fast jedem Unix da draußen, ist/bin/sh
. Einige Unix - Varianten haben fusioniert/bin
und/usr/bin
so/usr/bin/sh
auch funktioniert, aber die tragbare Art und Weise ist/bin/sh
, so dass das , was Sie in Bauden verwenden sollten. Am wichtigsten für Sie, auf Debian, gibt es keine, es sei denn, Sie haben sich die Mühe gemacht/usr/bin/sh
.quelle
Anstatt zu versuchen, meine eigene zu rollen, würde ich diese Version verwenden, die ich über Google gefunden habe.
Auszug
quelle