首页/系统/Linux 运维命令速查/场景:托管进程反复失败的处理
进程与作业69 条

场景:托管进程反复失败的处理

supervisor 里的进程 restart 后秒退:先看它自己的日志与退出码,再判断配置(命令路径/用户/环境)问题,别反复无脑 restart。

Linux 运维命令速查系统更新于 2026-10-12
场景supervisor 进程起不来/秒退
组合status + tail + 手动复现

看现场

看现场
supervisorctl status                # 看状态与最近 exit
supervisorctl tail app-worker stderr   # 错误输出(当前缓冲)
tail -n 50 /var/log/supervisor/app-worker-stderr*.log

手动复现

手动复现
grep -A15 'program:app-worker' /etc/supervisord.d/app-worker.ini
grep -E 'command|user|directory|environment' /etc/supervisord.d/app-worker.ini
sudo -u www-data bash -lc 'cd /opt/app && ./run.sh'   # 按配置的条件手动跑一次
环境差异类报错(找不到命令/模块):supervisor 不加载登录 shell 的 PATH——配置里用绝对路径或 environment= 显式声明。

易错点

  • STARTING 状态卡住:startsecs 设置与进程实际启动速度不匹配
  • 改完 ini 要 supervisorctl reread && update,否则跑的还是旧配置

数据来源与参考

  • supervisor 官方文档(supervisord.org)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌