我有一个python程序,我希望不断运行更新并收集新数据。基本上,我从一堆域收集数据。我的处理器需要大约一天半的时间才能运行。一旦完成,我希望他们能够自动重新开始。
我不想使用while
循环来重新启动进程而不会先删除所有相关内容,因为我用来支持这些处理器的某些软件包(主要是pyV8)存在问题记忆慢慢积累,我不是一个足够好的程序员来调试像这样的大包中的内存泄漏。所以,我需要所有相关的过程才能成功死亡,然后再复活。
我听说supervisord
可以做这类工作,但不要搞乱.conf
文件,而是希望将所有内容保存在python中。
摘要:是否有一个软件包可以使用脚本/包来杀死所有相关进程,我可以将其用于while循环或在python脚本中创建这种行为? < / p>
答案 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