You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu16.04下Supervisor 3.2.0异常退出状态255及Spawn错误求助

解决Supervisor工作进程Spawn错误(退出状态255)的排查步骤

我来帮你排查这个Supervisor启动失败的问题——退出状态255通常指向进程启动阶段的底层错误,不是单纯调整startretries参数能解决的,咱们一步步来定位问题:

  1. 先看Supervisor的详细日志
    表面的Spawn错误信息太笼统,你需要查看日志文件获取具体失败原因:

    • 查看主日志:tail -f /var/log/supervisor/supervisord.log
    • 查看对应工作进程的单独日志(如果配置了的话):tail -f /var/log/supervisor/[你的worker名称].log
      日志里通常会明确指出是命令路径错误、权限不足还是依赖缺失等具体问题。
  2. 验证启动命令的正确性
    Supervisor运行进程的环境和你平时用shell登录的环境不一样,一定要注意:

    • 确保命令用绝对路径,比如用/usr/bin/python3 /home/your-project/worker.py而不是python3 worker.py
    • 手动在终端执行一遍配置里的完整命令,看是否能正常启动——如果手动都跑不起来,那问题肯定在进程本身,比如脚本语法错误、依赖包未安装。
  3. 检查权限问题
    很多时候是权限不足导致的:

    • 确认工作进程需要访问的文件、目录(比如日志目录、工作目录)对Supervisor运行的用户(通常是supervisor或你配置的user)有读写权限
    • 尝试用Supervisor的用户身份执行命令:sudo -u supervisor [你的完整启动命令],如果执行失败,就能直接定位到权限问题。
  4. 核对配置文件的正确性
    即使你觉得和成功配置一致,也可能有细节遗漏:

    • 确保startretries参数放在[program:xxx]的节下面,而不是全局配置里
    • 检查是否配置了正确的directory(工作目录),如果进程需要在特定目录下运行,这个参数不能少
    • 示例正确的配置片段:
      [program:my-worker]
      command=/usr/bin/python3 /home/your-project/worker.py
      directory=/home/your-project
      user=your-username
      startretries=2
      autostart=true
      autorestart=true
      stdout_logfile=/var/log/supervisor/my-worker.log
      stderr_logfile=/var/log/supervisor/my-worker.err.log
      
  5. 检查环境变量
    Supervisor默认不会继承用户shell的环境变量,如果你的进程依赖特定的PATH、PYTHONPATH等变量,需要在配置里明确指定:

    environment=PATH="/usr/local/bin:/usr/bin",PYTHONPATH="/home/your-project/lib"
    

如果以上步骤都排查完还是没解决问题,建议把你的完整worker配置和日志里的具体错误信息贴出来,这样能更精准地定位问题。

内容的提问来源于stack exchange,提问作者eComEvo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:26:42