私のDebianコンピュータでGoogle AppEngineを実行しようとしていますが、次のファイルを作成しましたinit.d/gae
。
. /lib/lsb/init-functions
#
# Initialize variables
#
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
# End scriptname
スクリプトを手動で呼び出してテストしていますが、スクリプトは実行されますが、デーモンとして実行されないか、少なくとも端末から切り離されません。私はApacheに似た機能を期待または探しています。
私にはどのスイッチがありませんか?
編集する
スイッチがPIDファイルを生成する必要があるとマークしても、ファイルが作成または生成されないことに注意してください。
ベストアンサー1
2つの質問があるようです。
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
/opt/google_appengine/dev_appserver.py
prog=python
環境から始めます。これはstart
ブロックの前であるため、start-stop-daemon
関連していません。
クイック修正は、次のように全体の操作を参照することです。
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'
しかし、より良い解決策はスタイルを使用して/etc/init.d/skeleton
実行することです。
DAEMON='python /opt/google/appengine/dev_appserver.py'
DAEMON_ARGS='--host=0.0.0.0 --admin_host=0.0.0.0 --php_executable_path=/usr/bin/php-cgi /var/www'
2番目の問題は、引用が間違っていることです$prog
。
start-stop-daemon --start --make-pidfile --Background --oknodo --user "$user" --name "$name" --pidfile "$pid" --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
。
しかし、そのような手順はないようです。python
議論から始めたいです。二重引用符を削除するのは簡単な修正ですが、より良い方法/etc/init.d/skeleton
は次のとおりです。
起動 - デーモンプロセスの停止 --start --quiet --chuid $CHUID --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_ARGS