2012-03-01 10 views
1

私はpythonスクリプトを実行するためのデーモンを作成しました。私のubuntuマシンからログアウトするたびに停止します。ubuntuのデーモンとしてのPythonスクリプト

DAEMON=sudo python /var/www/some_dir/my_python.py 
ARGS=/var/www/some_dir/my_python.py 
PIDFILE=/var/www/some_dir/my_python.pid 

test -x $DAEMON || exit 0 

#set -e 

case "$1" in 
start) 
    echo -n "Starting $DESC: " 
    start-stop-daemon --start --pidfile $PIDFILE --exec $DAEMON & 
    echo "$NAME." 
    ;; 
stop) 
    echo -n "Stopping $DESC: " 
    start-stop-daemon --stop --pidfile $PIFDILE --exec $DAEMON 
    echo "$NAME." 
    ;; 
restart|force-reload) 
    echo -n "Restarting $DESC: " 
    start-stop-daemon --stop --pidfile $PIDFILE --exec $DAEMON 
    sleep 1 
    start-stop-daemon --start --pidfile $PIDFILE --exec $DAEMON & 
    echo "$NAME." 
    ;; 
*) 
    N=/etc/init.d/$NAME 
    echo "Usage: $N {start|stop|restart|force-reload}" >&2 
    exit 1 
    ;; 
esac 
exit 0 

どのようにすればいいのですか?

+0

デーモンをどのように起動しますか? – wRAR

+0

多分これはあなたを助けることができます。 [ユーザーログインログアウトでデーモンの起動と停止] [1] [1]:http://stackoverflow.com/questions/3950585/starting-and-stopping -a-daemon-at-user-login-logout – Bihaqo

+0

私は "sudo /etc/init.d/my_python start"を使用します – northlondoner

答えて

1

start-stop-daemon呼び出しから&を削除してください。また、initscriptにいくつかの他のエラーがあるので、proit initscriptsを書く方法を読むべきです。

+0

iログアウト後でもデーモンは停止します。 – northlondoner

+0

wRARはバックグラウンドでpythonスクリプトを実行する他の方法はありますか? – northlondoner

+0

'screen'、' nohup'、 '&' + 'disown'などです。とにかく適切な方法は、デーモンとして適切にスクリプトを書いて適切なinitscriptを書くことです。 – wRAR

3

この質問から久しいですが、今日このような状況に遭遇しました。

start-stop-daemon -K --pidfile $PIDFILE 

start-stop-daemon man pageから:

はそれを停止するには

start-stop-daemon -Sbm --pidfile $PIDFILE --exec $DAEMON 

を使用し、バックグラウンドでプロセスを開始するには

-b、-background

デーモンをバックグラウンドに強制するnd。いくつかのデーモンは のpidファイルを作成しないので、デーモンを フォアグラウンドで実行させ、このオプションを-m、-make-pidfileと一緒に使用して 作業用のpidfileを作成します。 -m、-make-pidfile

-p、-pidfile オプションで指定されたファイルにデーモンのpidを保存します。フォアグラウンド で実行され、--b、-backgroundオプションを付けてバックグラウンドに強制されるデーモンで使用する場合にのみ有効です。

関連する問題