k8s:pod被kill,显示command terminated with exit code 137
文章目录
- 错误说明
- 可能的原因
- 遇到的一个情况
错误说明
在 Linux 中,进程退出码 137 表示 进程因 SIGKILL 信号 (signal 9) 被杀死,其计算方式如下:
137=128+9
128:Linux 规定,如果进程因信号终止,退出码就是 128 + 信号编号。
9 (SIGKILL):表示 进程被强制终止(通常由 kill -9、OOM Killer 或 systemd 触发)。
可能的原因
- 手动 kill -9 pid 终止进程
- 系统 OOM Killer 触发
当系统内存不足,Linux OOM Killer 可能会杀死占用内存过多的进程。
通过 dmesg | grep -i “oom” 检查 OOM 记录。 - 容器 (Docker/K8s) 超过资源限制
Kubernetes:可能因 CPU/内存超限,检查 kubectl describe pod 。
Docker:可能因 --memory 限制导致 OOM。 - systemd 或 ulimit 约束
ulimit -a 查看系统资源限制,可能是 进程超时或资源受限 导致。
解决方法
检查日志:dmesg -T | grep -i “killed” 查看是否是