2012-11-10 229 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配置文件。