看看zdaemon。它提供了一种简单的方式来守护 Python 进程。
然后您可以根据您的操作系统为其编写一个 init.d 脚本。或者你可以使用像 Upstart、supervisord 这样的工具来控制守护进程。
我的 init.d 脚本(在 centos 5.8 上)如下所示:
. /etc/rc.d/init.d/functions
. /etc/sysconfig/network
APP_PATH=/path/to/your/app
PYTHON=/usr/local/bin/python
USER=user
start() {
cd $APP_PATH
zdaemon -C app.zdconf start
}
stop() {
cd $APP_PATH
zdaemon -C app.zdconf stop
}
check_status() {
cd $APP_PATH
zdaemon -C app.zdconf status
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
check_status
;;
restart)
stop
start
;;
*)
esac
exit 0
其中 app.zdconf 是 zdaemon 配置文件。