遇见 发表于 2025-11-23 15:13:53

给长脚本戴“紧箍咒”:青龙面板三招限定时长

脚本一跑就停不下来?青龙只管“点火”,不管“灭火”。给它加个运行时长上限,到点自动退出,既防死循环,又省资源。下面三招,按“懒人程度”排序:


① 容器级超时(最懒)
一句话:命令前加timeout ,到点直接杀。

timeout 300s node /ql/scripts/xxx.js

日志会打印Killed ,退出码 124,方便通知捕获。
Alpine 先装coreutils : apk add coreutils


② 脚本内部自检(最通用)
一句话:脚本里自己倒计时,到点process.exit() 。
JavaScript 示例:
js
const MAX = 290 * 1000; // 290 秒

setTimeout(() => {

console.log('>>> 时长到,自己退场 <<<');

process.exit(0);

}, MAX);

Python 示例:
python
import sys, threading

def quit():

    print('>>> 时长到,自己退场 <<<')

    sys.exit(0)

threading.Timer(290, quit).start()

③ PM2 级(少改青龙配置)
一句话: pm2 start app.js --kill-timeout 5000

适合长期守护进程,但青龙默认参数不易注入,①/② 更香。


✅ 用法小结
面板任务命令写:
bash
timeout 300s node /ql/scripts/xxx.js

或脚本头部加倒计时,零依赖,任何镜像都能用。

限定时长,脚本不再“赖床”!

页: [1]
查看完整版本: 给长脚本戴“紧箍咒”:青龙面板三招限定时长