Python服务/守护进程

时间:2012-11-10 01:05:25

标签: python linux service python-2.7 daemon

我正在编写一个我需要在启动时启动的Python脚本(它应该在启动后继续运行)。我希望能够通过运行如下命令来管理服务:

sudo service my-service (and either start, stop, restart, etc.)

我一直在阅读它,并且非常想完成我的项目。我看到了这一点,但是如果要工作Linux Start-up Script则需要帮助实现它。我甚至不确定从哪里开始,我真的不知道如何用bash编程,但我对所有解决方案都持开放态度。提前谢谢你,我感谢所有回复!

1 个答案:

答案 0 :(得分:2)

看看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配置文件。