在 Linux 系统中,进程被强制终止并显示 Killed
消息通常有以下几种原因。以下是详细分析和解决方案:
OOM Killer
会终止占用内存最多的进程。bash
dmesg | grep -i "killed process"
# 或查看系统日志:
grep -i "oom" /var/log/syslog
/proc/<pid>/oom_score_adj
)。cgroups
或 docker --memory
)。kill -9 <PID>
。bash
# 查看进程历史(如有审计日志):
grep "kill" /var/log/auth.log
kill
操作。bash
ulimit -a # 查看当前用户限制
cgget -g memory:/ # 检查 cgroups 限制(若使用)
ulimit -v
修改虚拟内存限制)。systemd
或 cron
等工具因超时或策略终止进程。bash
journalctl -xe # 查看 systemd 日志
systemctl status <service> # 检查服务状态
TimeoutSec
或资源策略。bash
dmesg | grep -i "error" # 检查内核错误
memtest86+ # 内存测试工具
bash
audit2why -a # 分析 SELinux 日志
SIGTERM
(15)或 SIGKILL
(9)。
bash
kill -l # 查看信号列表
bash
journalctl -xe | grep -i "killed"
bash
free -h && vmstat 1
bash
top -p <PID> # 或 htop
根据具体场景选择对应方案。例如,若日志显示 OOM
,则优先优化内存;若为手动终止,则检查运维操作记录。