start-stop-daemon работает в командной строке, но не работает в/etc/init.d сценарии

Я пытаюсь получить сценарий начинающего (для рубинового драгоценного камня, названного ar_sendmail) работающий в/etc/init.d/ar_sendmail:

#! /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 {start|stop|restart|reload}" >&2
            exit 1   
            ;;
    esac

    exit 0

Это аварийно завершается на start-stop-daemon строке, говоря "start-stop-daemon: не найденный". Но, когда я включаю значения в ту строку вручную и выполняю ее на командной строке, она работает.

Моя первая мысль была этим, была строка хижины, но #! /bin/sh должно быть правильным, не был должен он? Это - определенно правильная папка и что я использую в своих других/etc/init.d сценариях.

Мое долгое размышление было то, что это - связанный sudo: я тестировал start-stop-daemon в non-sudo и выполнял/etc/init.d/ar_sendmail в sudo режиме. Но, я могу выполнить start-stop-daemon штраф с sudo также.

Отчасти озадаченный, какие-либо идеи?

1
задан 08.03.2011, 13:20

1 ответ

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

Существует Ваша проблема.

Вы ударяете Ваш PATH переменная, таким образом, это не может найти start-stop-daemon в/sbin

Использование попытки:

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

Или что-то подобное вместо этого.

5
ответ дан 12.12.2019, 08:36

Теги

Похожие вопросы