让脚本进程挂了自动拉起来的守护方案
解决什么问题
自己跑的脚本、爬虫、队列消费者有个通病:崩了没人拉。写个定时检测脚本也能凑合,但延迟和遗漏都不好控制。工具箱里的「进程守护」基于 Supervisor——Linux 世界最老牌的进程守护工具,进程退出自动重启、日志统一收集、状态一目了然。
装好并初始化
Supervisor 本体要先用系统的包管理器装(RedHat 系装 epel 源后装 supervisor,Debian 系直接 apt 装),官方文档两条路线都给了命令。装完首次使用需要初始化:面板导入 Supervisor 的配置文件位置与服务名称,服务变动后在设置页可以重新初始化。

创建守护进程
点「创建守护进程」填核心参数:
- 名称与命令:要跑的程序或脚本及其启动命令;
- 运行目录与用户:工作路径和执行身份;
- 进程数:多实例并发时用;
- 自动重启与启动时机:崩了是否拉起、开机是否自启。
创建后 Supervisor 接管该进程:崩溃自动拉起,状态实时可见。
日常管理面
列表页对每个守护进程提供启动、停止、重启、日志查看、编辑、删除、修改源文件。两类高频场景:
- 看日志:脚本崩溃原因都在 Supervisor 收集的日志里,比翻散落的输出文件省事;
- 改配置:编辑启动参数后重启守护生效。
状态栏还提供对 Supervisor 服务本身的操作:重启、停止、查看日志、改主配置。Supervisor 服务挂了所有守护一起失效,所以偶尔瞄一眼它的状态也是运维动作之一。
和计划任务的分工
守护与计划任务的分工要分清:常驻进程(一直要活着)用守护,周期动作(到点跑一次)用计划任务。把常驻服务塞进计划任务定时拉起是常见误用——间隔内的空窗和重复拉起都会出问题。