go
system_error
ai_generated
true
错误:信号:被杀死
error: signal: killed
ID: go/os-exec-command-killed
80%修复率
84%置信度
0证据数
2024-03-15首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| 1.20 | active | — | — | — |
| 1.21 | active | — | — | — |
根因分析
执行的命令被操作系统信号终止,通常为SIGKILL,由于资源限制或手动干预。
English
The executed command was terminated by an operating system signal, typically SIGKILL, due to resource limits or manual intervention.
解决方案
-
85% 成功率 Use exec.Cmd with SysProcAttr to set process group and handle signals
cmd := exec.Command("command") cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} if err := cmd.Run(); err != nil { if exitErr, ok := err.(*exec.ExitError); ok { if status, ok := exitErr.Sys().(syscall.WaitStatus); ok { if status.Signaled() { /* handle signal */ } } } }
无效尝试
常见但无效的做法:
-
Restarting the command without investigating
70% 失败
May be killed again due to same resource issue; check OOM killer or ulimit.