繁体   English   中英

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

[英]How to automatically rerun a python program after it finishes? Supervisord?

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

我不想使用while循环来重新启动进程而不先杀死所有相关的东西,因为我用来支持这些处理器的某些软件包(主要是pyV8)存在内存缓慢累积的问题,而我不是足够好的程序员可以像这样在大型程序包中调试内存泄漏。 因此,我需要所有相关过程来成功消亡,然后重获新生。

我听说supervisord可以完成这类工作,但不喜欢把.conf文件弄乱,而宁愿将所有内容都保留在python中。

简介:是否有一个软件包可以杀死某个脚本/软件包的所有相关进程,而我可以使用它们将该脚本/软件包放入while循环或在python脚本内部创建这种行为?

我不明白为什么您不能使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM