我创建了一个守护进程来运行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 :(得分:3)
问这个问题已经很久了,但我今天遇到了这种情况。
要在后台启动该过程,请使用
start-stop-daemon -Sbm --pidfile $PIDFILE --exec $DAEMON
要阻止它:
start-stop-daemon -K --pidfile $PIDFILE
-b,-background
强制守护程序进入后台。有些守护进程不会创建 pidfiles,所以一个好方法是让守护进程运行 前台,并将此选项与-m,-make-pidfile一起使用 创建一个工作的pid文件。 -m,-make-pidfile
将守护程序的pid保存在-p,-pidfile指定的文件中 选项。仅在与前景中运行的守护程序一起使用时才有用 并使用--b,-background选项强制进入后台。
答案 1 :(得分:1)
尝试从&
次调用中删除start-stop-daemon
。此外,您应该阅读如何编写proer initscripts,因为您的initscript中还有其他几个错误。