fix(agent): 超时强杀的 exit_code 跨平台归一为 124
Windows 上 taskkill /F 会让子进程以 code=1 退出(Unix 为 null), 原逻辑 code ?? (killed ? 124 : -1) 在 Windows 上会返回 1。 改为 killed 优先:被杀统一返回 124,与 Unix timeout(1) 语义一致。 CI 实机验证发现:Windows 上 12/13 → 修复后应 13/13
This commit is contained in:
1 parent
96b02df857
commit
1d992cf9dc
1 file changed
+3
-1
@@ -116,7 +116,9 @@ export function execCommand(opts: ExecOptions): Promise<ExecResult> {
|
||||
const finish = (code: number | null): void => {
|
||||
clearTimeout(timer);
|
||||
resolve({
|
||||
exit_code: code ?? (killed ? 124 : -1),
|
||||
// 被超时强杀时统一语义:exit_code = 124(与 Unix timeout(1) 惯例一致)
|
||||
// 注:Windows 上 taskkill /F 会让子进程以 code=1 退出(Unix 为 null),需在此归一
|
||||
exit_code: killed ? 124 : (code ?? -1),
|
||||
stdout: stdout.trimEnd(),
|
||||
stderr: stderr.trimEnd(),
|
||||
duration_ms: Date.now() - startedAt,
|
||||
|
||||
Reference in new issue
Block a user