2012-03-01 61 views
1

守護我創建了一個守護進程運行一個python腳本。但是當我從我的ubuntu機器註銷時它會停止。Python腳本在Ubuntu的

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 2012-03-01 17:26:53

+0

也許這可以幫助你: [啓動和停止在用戶登錄註銷一個守護進程] [1] [1]:http://stackoverflow.com/questions/3950585/starting-and-stopping -a守護進程,在用戶登錄,註銷 – Bihaqo 2012-03-01 17:28:05

+0

我使用「命令/etc/init.d/my_python開始」 – northlondoner 2012-03-01 17:30:07

回答

1

嘗試從start-stop-daemon調用刪除&。此外,你應該讀怎麼寫PROER啓動腳本,因爲在你的啓動腳本等幾個錯誤。

+0

守護進程在我註銷後仍然停止。 – northlondoner 2012-03-01 17:42:58

+0

wRAR有沒有其他方法可以在後臺運行python腳本? – northlondoner 2012-03-01 17:48:03

+0

'screen','nohup','&'disown'等等。無論如何,唯一正確的方法是正確編寫一個腳本作爲守護進程並編寫適當的腳本。 – wRAR 2012-03-01 18:00:05

3

這是一個漫長的時間,因爲這個問題被問,但我今天過這種情況就來了。

要在後臺啓動的過程中,使用

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

要停止它:

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

start-stop-daemon man page

-b,-background

強制守護進入酒泉ND。某些服務不創建 PID文件,所以一個好的技巧是讓守護在 前臺運行,並使用此選項與-m一起,-make-pidfile進程文件來 創建工作pidfile進程文件。 -m,-make-pidfile

將守護進程的pid保存在由-p,-pidfile 選項指定的文件中。唯一有用的與在前臺運行 並被迫與--b,-background選項在後臺守護進程使用時。