如何在完成后自动重新运行python程序? Supervisord?

时间:2015-04-30 17:27:03

标签: python kill supervisord pyv8

我有一个python程序,我希望不断运行更新并收集新数据。基本上,我从一堆域收集数据。我的处理器需要大约一天半的时间才能运行。一旦完成,我希望他们能够自动重新开始。

我不想使用while循环来重新启动进程而不会先删除所有相关内容,因为我用来支持这些处理器的某些软件包(主要是pyV8)存在问题记忆慢慢积累,我不是一个足够好的程序员来调试像这样的大包中的内存泄漏。所以,我需要所有相关的过程才能成功死亡,然后再复活。

我听说supervisord可以做这类工作,但不要搞乱.conf文件,而是希望将所有内容保存在python中。

摘要:是否有一个软件包可以使用脚本/包来杀死所有相关进程,我可以将其用于while循环或在python脚本中创建这种行为? < / p>

1 个答案:

答案 0 :(得分:2)

我不明白为什么你不能使用supervisord。配置非常简单,非常灵活,并不仅限于python程序。

例如,您可以创建文件/etc/supervisor/conf.d/myprog.conf

[program:myprog]
command=/opt/myprog/bin/myprog --opt1 --opt2
directory=/opt/myprog
user=myuser

然后重新加载主管的配置:

$ sudo supervisorctl reload

它已经开启了。这不够简单吗?

有关supervisord配置的更多信息:http://supervisord.org/subprocess.html