在使用宝塔中的 Supervisor 来监控某些指定进程的时候,会有这种场景:我们需要定时重启监控的某个脚本或者子进程,重启又能不影响其他的子进程。
Supervisor 宝塔中的默认位置在 /www/server/panel/pyenv/bin/supervisor ,但是我们需要用到的命令行工具是 supervisorctl ,即完整路径为:/www/server/panel/pyenv/bin/supervisorctl ,其完整的帮助手册信息如下:
我们本次使用的时候只需要使用 restart 命令参数即可。完整的命令格式为 supervisorctl restart name;
在宝塔中,需要知道 Supervisor 的子进程的名字(上述命令格式中的 name),我们可以通过执行一次重启 all 的操作来获取:
这就可以拿到所有的子进程名称,拿到子进程名称后就可以单独重启了:
需要定时重启的,只需要在定时任务哪里把上面的单独重启某个进程的命令加如 shell脚本 类型的任务下的脚本内容即可。
Supervisor简介:Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。supervisor还提供了一个功能,可以为supervisord或者每个子进程,设置一个非root的user,这个user就可以管理它对应的进程。