Python脚本作为ubuntu中的守护进程

时间:2012-03-01 17:21:34

标签: python ubuntu daemon

我创建了一个守护进程来运行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

任何人都可以告诉我我该怎么做。

2 个答案:

答案 0 :(得分:3)

问这个问题已经很久了,但我今天遇到了这种情况。

要在后台启动该过程,请使用

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

要阻止它:

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

来自start-stop-daemon man page

  

-b,-background

     

强制守护程序进入后台。有些守护进程不会创建   pidfiles,所以一个好方法是让守护进程运行   前台,并将此选项与-m,-make-pidfile一起使用   创建一个工作的pid文件。   -m,-make-pidfile

     

将守护程序的pid保存在-p,-pidfile指定的文件中   选项。仅在与前景中运行的守护程序一起使用时才有用   并使用--b,-background选项强制进入后台。

答案 1 :(得分:1)

尝试从&次调用中删除start-stop-daemon。此外,您应该阅读如何编写proer initscripts,因为您的initscript中还有其他几个错误。