需要Python应用程序的init.d脚本

我有一个基于python的应用程序,它像一个饲料聚合器一样工作,需要成为init.d脚本的一部分,以便我可以通过启动/停止/重新启动选项来控制执行。 另外我想init.d脚本被设置为一个cron作业(我在这里有例子)。

我在这里find一个示例http://homepage.hispeed.ch/py430/python/daemon

(PS。我不希望脚本是用Python编写的)。

你可以考虑为使用Upstart的操作系统编写一个Upstart任务。

例:

# Start zeya # description "Start Zeya music server" start on startup task exec python /home/r00t/code-hacking/serve-music/zeya/src/zeya/zeya.py --path=/home/r00t/Music 

把它添加到一个文件中,在/ etc / init中说'zeya.conf'

然后你可以使用'initctl'来控制作业。 例如:

 initctl status zeya initctl stop zeya 

我最近做了这样的事情,用Supervisord写了一些小的配置文件。

从init脚本(几乎没有准备),我只是用适当的参数来调用supervisor-ctl。

此外,你应该注意到,实际功能(例如, start-stop-daemon )从发行版到发行版各不相同。

真的有一个反问题,但我注意到,你已经提到了cron,这意味着,你的应用程序将被定期运行,而不是以一种所谓的守护进程的方式持续运行。

对于定期运行的应用程序来说,启动,停止和重启命令有什么意义? 我的意思是,你的应用程序每小时运行一次,或者什么东西,为什么需要启动,停止和重新启动?

无论如何,既然你已经提到Ubuntu,我必须说,你已经链接的脚本不符合目前的标准,无论是Ubuntu或debian lenny initscripts。 您可以在/etc/init.d/skeleton看到正确的模板

重申一下,为什么你需要一个cron工作初始

编辑
考虑到这个注释,即使应用程序崩溃或被终止,保持应用程序运行的有点“规范”的方法是inittab 。 当然,你也可以用cron做这个工作。

我在这里找到一个示例http://homepage.hispeed.ch/py430/python/daemon

我知道是一个古老的问题,但实际上你找到的例子是在Ubuntu和Debian中这样做(启动/停止/重新启动)的建议方法。 然后你可以做一个cron工作,看看你的程序是否在运行。

(PS。我不希望脚本是用Python编写的)。

脚本是用shell命令语言编写的。