3

我正在编写一个 Python 脚本,我需要在启动时启动它(一旦启动它就应该永远运行)。我希望能够通过运行以下命令来管理服务:

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

我已经阅读了很多内容,并且真的很想完成我的项目。我看到了这一点,但如果它要在Linux Start-up Script中运行,则需要帮助来实现它。我什至不知道从哪里开始,我真的不知道如何在 bash 中编程,但我对所有解决方案持开放态度。提前谢谢你,我感谢所有的回复!

4

1 回答 1

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

于 2012-11-10T09:42:40.347 回答