1

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

我不想使用while循环来重新启动进程而不首先杀死所有相关的东西,因为我用来支持这些处理器(主要是 pyV8)的一些包存在内存缓慢积累的问题,我不是一个好的足够多的程序员去调试这样一个大包中的内存泄漏。所以,我需要所有相关的过程,才能成功地死去,然后再起死回生。

我听说supervisord可以做这种类型的工作,但不喜欢搞乱.conf文件,宁愿把所有东西都保存在 python 中。

摘要:是否有一个包可以使用脚本/包杀死所有相关进程,我可以用它来放入while循环或在python脚本中创建这种行为?

4

1 回答 1

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

于 2015-04-30T17:35:32.557 回答