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

如何为Supervisor管理的Python作业设置TTL(超时时间)?

为Supervisor管理的Python作业设置超时时间(TTL)

当然可以给这些作业设置超时时间,直接通过系统工具或Supervisor配置就能实现,以下是两种简单可行的方案:

方案1:用系统timeout命令包裹启动命令

这是最直接的方法,不需要修改Python代码,只需要调整Supervisor的作业配置。Linux系统自带的timeout命令可以限制进程的最大运行时长,超过设定时间就自动终止进程。

修改Supervisor对应作业的配置段,把原启动命令用timeout包裹:

[program:lightweight_python_job]
command=timeout 300 python /path/to/your/script.py
directory=/path/to/your/script
user=your_run_user
autorestart=true  # 若超时终止后需要自动重启作业,可设为true
stdout_logfile=/var/log/supervisor/job_stdout.log
stderr_logfile=/var/log/supervisor/job_stderr.log
  • 300代表允许进程运行的最长秒数(即5分钟),可根据需求调整。
  • 进程超时后,timeout会先发送SIGTERM信号尝试优雅终止,若进程无响应,后续会发送SIGKILL强制终止。

方案2:用Supervisor事件监听器(进阶)

如果需要更精细化的控制(比如记录超时日志、自定义终止逻辑),可以编写Supervisor事件监听器,监控进程的运行时长,超过阈值就触发终止操作。不过这个方案需要额外编写监听脚本,适合有定制需求的场景。

额外排查建议

虽然设置超时能快速解决卡住的问题,但还是建议排查下根源:

  • 检查系统资源:是否存在内存耗尽、文件句柄不足等情况
  • 检查外部依赖:脚本是否调用了外部服务/API,这些服务是否出现超时或不可用
  • 检查依赖版本:是否有依赖库被自动更新(比如pip的自动更新)导致兼容性问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 13:43:25