Skip to content

v1.3

Latest

Choose a tag to compare

@AcE77505 AcE77505 released this 19 Oct 00:08
· 3 commits to main since this release
8e046be

修复

  • timeout 参数真正生效:不传(或 ≤0)表示不设超时,传了按秒计时,到点向整个进程组发 SIGKILL(此前写死 30 秒,参数被忽略)
  • 管道读到的 EAGAIN 不再当作 EOF:大输出不再被提前截断,也不会再出现「子进程写满管道 + 服务端等待」的双向卡死
  • 子进程回收有界:SIGKILL 后最多等 2 秒,请求线程不会被永久挂住
  • HTTP 请求增加总时长上限 30 秒,慢速持续喂数据的连接直接回 408 Request Timeout
  • status 的 cmd 字段做完整 JSON 转义(双引号 / 反斜杠 / 换行 / 制表符等),命令里带这些字符时不再返回非法 JSON

其它

  • stop 的 pid 用数字传也生效了(此前只认字符串形式)
  • status 的 count 与 terminals 长度一致
  • 命令表满 64 条后仍会继续跟踪新命令(此前会静默停止跟踪)

注意(行为变更)

  • 默认不再 30 秒超时:以前超过 30 秒会被切断的命令,现在会一直执行到退出。需要上限请显式传 timeout(秒)。
  • 命令把后台进程留在 stdout/stderr 上(如 cmd & 未重定向)时,调用会等到该后台进程退出;请写成 cmd >log 2>&1 & 或传 timeout。
  • 替换二进制后需重启服务;-f 不能从本服务自己 fork 出的命令里重启自己(会判定为本进程树持有者而拒绝接管),请在另一个终端启动。