2012-03-01 2 views
1

파이썬 스크립트를 실행하기위한 데몬을 만들었습니다. 하지만 우분투 시스템에서 로그 아웃 할 때마다 멈 춥니 다.우분투의 데몬과 같은 파이썬 스크립트

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에 몇 가지 다른 오류가 있기 때문에 proer initscript를 작성하는 방법을 읽어야합니다.

+0

i 로그 아웃 후 데몬이 여전히 중지됩니다. – northlondoner

+0

wRAR에는 백그라운드에서 파이썬 스크립트를 실행할 수있는 다른 방법이 있습니까? – 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과 함께이 옵션을 사용하여 작업중인 pid 파일을 만듭니다. -m, -make-pidfile

-p, -pidfile 옵션으로 지정된 파일에 데몬의 pid를 저장합니다. 포 그라운드 에서 실행되고 --b, -background 옵션을 사용하여 백그라운드로 강제 실행되는 데몬과 함께 사용할 때만 유용합니다.

관련 문제