PATH=/var/lib/gems/1.8/bin
Там твоя проблема.
Вы забили свою PATH
переменную, чтобы она не могла найти start-stop-daemon
в / sbin
Попробуйте использовать:
PATH=$:/var/lib/gems/1.8/bin
Или что-то подобное вместо этого.
Я пытаюсь получить стартовый скрипт (для рубинового гема 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 " >&2 exit 1 ;; esac exit 0
Он взрывается в строке start-stop-daemon, говоря «start-stop-daemon: not found». Но когда я вставляю значения в эту строку вручную и запускаю ее в командной строке, это работает.
Моя первая мысль была, что это была линия Шебанга, но #! /bin/sh
должна быть права, не так ли? Это определенно правильная папка и то, что я использую в других моих /etc/init.d скриптах.
Вторая мысль заключалась в том, что это связано с sudo: я тестировал start-stop-daemon в non-sudo и запускал /etc/init.d/ar_sendmail в режиме sudo. Но я также могу запустить start-stop-daemon нормально с sudo.
Вид тупика, есть идеи?
PATH=/var/lib/gems/1.8/bin
Там твоя проблема.
Вы забили свою PATH
переменную, чтобы она не могла найти start-stop-daemon
в / sbin
Попробуйте использовать:
PATH=$:/var/lib/gems/1.8/bin
Или что-то подобное вместо этого.