start-stop-daemon funktioniert in der Befehlszeile, aber nicht im Skript /etc/init.d

9182
Max Williams

Ich versuche ein Starterskript (für einen Rubin-Edelstein namens ar_sendmail) in /etc/init.d/ar_sendmail zu erstellen:

#! /bin/sh  echo "in /etc/init.d/ar_sendmail" DIR=/home/max/work/e_learning_resource/trunk PATH=/var/lib/gems/1.8/bin DAEMON=/var/lib/gems/1.8/bin/ar_sendmail DAEMON_OPTS="-e production -d --batch-size 100 --delay 150" NAME=ar_sendmail DESC=ar_sendmail PID_FILE=/home/max/work/e_learning_resource/trunk/shared/log/ar_sendmail.pid   test -x $DAEMON || exit 0 set -e  case "$1" in start) echo -n "Starting $DESC: " start-stop-daemon -d $DIR --start --quiet --pidfile $PID_FILE \ --exec $DAEMON -- $DAEMON_OPTS echo "$NAME." ;; stop) echo -n "Stopping $DESC: " kill -TERM `cat $PID_FILE`  rm $PID_FILE echo "$NAME." ;; restart) echo -n "Restarting $DESC: " kill -TERM `cat $PID_FILE`  rm $PID_FILE sleep 1 start-stop-daemon -d $DIR --start --quiet --pidfile \ $PID_FILE --exec $DAEMON -- $DAEMON_OPTS echo "$NAME." ;; *) N=/etc/init.d/$NAME echo "Usage: $N " >&2 exit 1  ;; esac  exit 0 

Es sprengt die Zeile start-stop-daemon und sagt "start-stop-daemon: not found". Wenn ich die Werte jedoch manuell in diese Zeile stecke und sie in der Befehlszeile ausführen, funktioniert das.

Mein erster Gedanke war, dass es die Shebang-Linie war, #! /bin/shsollte aber richtig sein, oder? Es ist definitiv der richtige Ordner und was ich in meinen anderen /etc/init.d-Skripten verwende.

Mein zweiter Gedanke war, dass es sich um Sudo handelt: Ich hatte Start-Stop-Daemon in Nicht-Sudo getestet und /etc/init.d/ar_sendmail im Sudo-Modus ausgeführt. Aber ich kann Start-Stop-Daemon auch mit Sudo ausführen.

Irgendwie verblüfft, irgendwelche Ideen?

1
Bitte nicht [cross-post] (http://stackoverflow.com/questions/5231036/start-stop-daemon-works-at-command-line-but-doesnt-work-in-etc-init-d- Skript). Dennis Williamson vor 13 Jahren 1

1 Antwort auf die Frage

5
Majenko
PATH=/var/lib/gems/1.8/bin 

Da ist dein Problem.

Sie blockieren Ihre PATHVariable, damit sie nicht start-stop-daemonin / sbin gefunden wird

Versuchen Sie es mit:

PATH=$:/var/lib/gems/1.8/bin 

Oder etwas ähnliches.

aaah! Na sicher. Danke matt Max Williams vor 13 Jahren 0
@daramarak Vernachlässigung meinerseits. Jetzt markiert, danke für den Prod. Max Williams vor 8 Jahren 0