我们知道SuperVisord可以用来管理进程,但是有时某个进程随着执行时间越长,可能会出现内存占满或缓存数据过多问题,造成系统卡慢等情况。如何通过任务计划定时重启SuperVisord里面指定的守护进程呢?
这台服务器有安装BT环境,SuperVisord是在BT面板里面软件商店安装的。如果是原生安装的SuperVisord软件的话,原理一样的。部分命令的路径不一样。可以通过 ps -ef 查找下运行的路径。
我们需要用到 supervisorctl 这个可执行命令,bt安装的情况下,路径为 /www/server/panel/pyenv/bin/supervisorctl 。使用这个命令我们可以查看已添加的守护进程的相关及重启进程等服务。
cd /www/server/panel/pyenv/bin/
supervisorctl status
本机执行返回如下
queue:queue_00 RUNNING pid 25849, uptime 7:31:42
services:services_00 RUNNING pid 25790, uptime 7:31:46
上面数据分别为进程名称、运行状态、pid、运行时长
supervisorctl restart all
#重启supervisor里面添加的所有守护进程
supervisorctl restart <task_name>
#重启指定名称的进程,这个名称可以从 supervisorctl status 里面查询
#支持重启多个进程
找到指定的守护进程的名称,比如需要定时重启queue:queue_00 这个进程。
然后可以在BT控制面板里面添加计划任务,每天3:30执行重启这个守护进程。