进程守护 Supervisor
Info
Supervisor(官网)是一个 C/S 架构的进程管理工具,可以在类 UNIX 系统上启动、停止、监控进程,并在进程异常退出时自动拉起。
安装
安装后的主要文件:
- 主配置:
/etc/supervisord.conf - 子配置目录:
/etc/supervisor/conf.d/*.conf - 命令行工具:
supervisorctl
服务管理
新增守护进程
在 /etc/supervisor/conf.d/ 下新建 *.conf 文件,例如:
/etc/supervisor/conf.d/my_test.conf
加载配置:
supervisorctl 常用命令
执行 supervisorctl 进入交互式 shell,也可以直接用 supervisorctl <command> 执行单条命令。
直接命令行执行:
主配置说明
/etc/supervisord.conf 中需要关注的部分:
/etc/supervisord.conf
说明:
/var/run是 tmpfs,重启后会清空,socket 与 pid 文件由 supervisord 启动时重建。- 日志目录(如例子中的
/data/log/supervisor)需要提前创建,并保证运行用户有写权限。 chmod=0700表示只有属主(通常是 root)能访问 socket,因此执行supervisorctl需要 root 或 sudo。
program 配置项
常见问题
unix:///var/run/supervisor.sock no such file:supervisord 未启动,执行systemctl start supervisord。- 修改或新增配置后进程没有变化:执行
supervisorctl reread,再执行supervisorctl update。 - 修改了主配置
/etc/supervisord.conf:需要systemctl restart supervisord才生效。 - 程序启动即退出:查看
stdout_logfile中的日志,或执行supervisorctl tail -f <program>。

