Я зарегистрировал сценарий 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"