簡體   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