Назад | Перейти на главную страницу

Сценарий init.d запускается, но сразу умирает

Я зарегистрировал сценарий init.d, и когда я вызываю его напрямую /etc/init.d/gae, похоже, он работает ... PID-файл создается, но процесс не отображается, когда я выполняю пс

Я погуглил и лучше всего определил, что это, возможно, проблема с путём, когда "python" не расположен должным образом? Если я уберу "кавычки" вокруг прога переменная Google AppEngine работает должным образом и продолжает работать, но при этом не отсоединяется от терминала ... есть идеи?

name=gae
user=$name

pid=/var/run/$name.pid
prog="python /opt/google_appengine/dev_appserver.py --host=0.0.0.0 --admin_host=0.0.0.0 --php_executable_path=/usr/bin/php-cgi /var/www"


case "${1}" in
   start)
      echo "Starting...Google App Engine"
      start-stop-daemon --start --make-pidfile --background --oknodo --user "$user" --name "$name" --pidfile "$pid" --startas "$prog" 

      ;;

   stop)
      echo "Stopping...Google App Engine"

      ;;

   restart)
      ${0} stop
      sleep 1
      ${0} start
      ;;

   *)
      echo "Usage: ${0} {start|stop|restart}"
      exit 1
      ;;
esac

exit 0

Вам необходимо разделить команду и ее параметры, указав все как --startas «$ prog» означает, что start-stop-daemon будет искать команду с именем «python /opt/google_appengine/dev_appserver.py --host = 0.0. .0.0 --admin_host = 0.0.0.0 --php_executable_path = / usr / bin / php-cgi / var / www ", все одна строка без каких-либо параметров ...

Так:

prog="python"
options="/opt/google_appengine/dev_appserver.py --host=0.0.0.0 --admin_host=0.0.0.0 --php_executable_path=/usr/bin/php-cgi /var/www"
...
start-stop-daemon --start --make-pidfile --background --oknodo --user "$user" --name "$name" --pidfile "$pid" --startas "$prog" -- $options

Кроме того, если dev_appserver.py имеет разрешения на выполнение и начинается с #! / Usr / bin / python, сделайте это $ prog и удалите его из $ options:

prog="/opt/google_appengine/dev_appserver.py"
options="--host=0.0.0.0 --admin_host=0.0.0.0 --php_executable_path=/usr/bin/php-cgi /var/www"