2012-11-10 186 views
3

我正在写一个Python脚本,我需要在启动时启动(它应该在启动后继续运行)。我希望能在通过运行一个命令来管理服务:Python服务/守护进程

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

我已经读了很多把它和真的想结束我的项目。我看到了这个,但是如果它工作的话Linux Start-up Script需要帮助。我甚至不知道从哪里开始,我真的不知道如何在bash中编程,但我对所有解决方案都是开放的。提前感谢您,我感谢所有回应!

+1

您使用的是哪种Linux发行版? – Blender

+0

我在我的Raspberry Pi上运行Debian的一个版本。 – KosherBacon

+0

查看'/ etc/init.d /'目录中的一些脚本。 – Blender

回答

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