dm0*_*514 23 php python gearman supervisord
我在ubuntu 12.04上使用Supervisor(3.0a12)来管理php gearman worker.有时,工人陷入一种奇怪的状态,他们使用大量的cpu和ram.虽然我正在解决这个问题,但我认为让Supervisor偶尔会自动杀死并刷新工作人员会很好.我查看了http://supervisord.org/configuration.html配置文档,似乎没有看到任何允许这样做的选项.
有谁知道是否有可能让supervisord定期重启它管理的所有进程?
scu*_*cum 24
您可以使用crontab将命令直接传递给supervisorctl.例如,以下将每20分钟重新启动一个进程.
0,20,40 * * * * /path/to/supervisorctl restart [supervisor_process]
Run Code Online (Sandbox Code Playgroud)
Mar*_*ers 22
该superlance软件包为主管提供了一个memmon插件.memmon监视主管控制下的程序的内存使用情况.
您配置memmon为主管eventlistener:
[eventlistener:memmon]
command=memmon -a 200MB
events=TICK_60
Run Code Online (Sandbox Code Playgroud)
如果超过200MB的内存使用量,上面的配置将memmon设置为在超级用户控制下重启任何程序.它每60秒检查一次.
您可以配置memmon以监视特定程序或程序组,为每个程序或程序组设置限制.
Con*_*nor 12
有一个简单的仅限主管的解决方案。创建另一个休眠适当时间的主管进程,然后重新启动所需的进程。
[program:my_program]
process_name = python something.py
[program:periodicrestarter]
command = sh -c "echo 'restart my_program' | supervisorctl;sleep 600"
; restarts all (sleeps first because this restarts itself):
;command = sh -c "sleep 600; echo 'restart all' | supervisorctl"
autorestart = true
Run Code Online (Sandbox Code Playgroud)