次の問題に直面しています。 pythonスクリプトをUbuntu 11.10システムでサービスとして実行したい(既に次のリンクで言及されている: buntuでUpstartを使用するPythonサービス )言及されたステップに従った上記のリンクでは、次のエラーメッセージがsyslogに表示されました。
init: script main process (21826) terminated with status 1
Jun 8 16:59:55 bilbo kernel: [263012.984531] init: script main process ended, respawning
Jun 8 16:59:55 bilbo kernel: [263013.044099] init: script main process (21827) terminated with status 1
上記の2行は常に繰り返されています。
Sudo start script
、私は次のようになります:
$ Sudo start script
script start/running, process 21826
以下は私のscript.conf
に配置/etc/init
:
description "Used to start python script as a service"
author "bilbo"
start on runlevel [2]
stop on runlevel [06]
exec python /home/bilbo/scripts/webserver.py
respawn
私が間違っていることを教えてください? pythonコードも変更する必要がありますか?
webserver.py
は、ゼロ以外の値で終了します。デフォルトでは、Upstartはこれをエラーと見なし、サービスの再起動を試行しています。
なぜwebserver.py
は終了しています-私の推測では、特定の環境を想定しています。 Upstartがプロセスを生成すると、cron
およびat
と同様に環境をクリアし、非常に少数の変数を設定します。
TERM
PATH
ジョブ環境全体を表示するには、次のようにset
への呼び出しを追加します。
pythonサービスに他の変数が必要な場合は、「env
」(Upstartスタンザ、notシェルコマンド)。