问题
在 Linux 系统上,运行python项目时出现被killed,这时候就可以通过查看系统日志来检查程序被杀掉的详细原因。
解决方法
1. 查看 /var/log/syslog
/var/log/syslog 是系统日志文件,记录了系统的各种事件,包括进程被杀掉的原因。
命令1: 这个命令会显示 syslog 文件的最后 100 行内容。你可以增加 -n 后的数字以查看更多行。
sudo tail -n 100 /var/log/syslog
命令2: 这条命令会过滤出包含 “killed” 的日志条目。
sudo tail -n 100 /var/log/syslog | grep -i "killed"
2. 查看 dmesg
dmesg命令显示内核消息缓冲区的内容,通常包括与系统启动、硬件、驱动程序和进程相关的信息。
命令1: 这个命令会显示内核消息缓冲区的最后 100 行内容。
dmesg | tail -n 100
命令2: 这条命令会过滤出包含 “killed” 的内核消息。
dmesg | grep -i "killed"
3. 使用 journalctl
journalctl 是一个更高级的日志查看工具,用于查看由 systemd 记录的日志。
命令1: 这个命令会显示最新的日志,并提供详细的错误信息。
sudo journalctl -xe
命令2: 这条命令会过滤出包含 “killed” 的日志条目。
sudo journalctl -xe | grep -i "killed"
示例:
从日志信息来看,进程被杀掉是因为系统内存不足(Out of memory)。具体来说,被杀掉的进程是一个 python 进程,总虚拟内存使用量为 53064856kB(约 53GB),其中匿名内存(anon-rss)使用了 12928296kB(约 13GB),文件系统缓存(file-rss)使用了 66088kB(约 66MB),共享内存(shmem-rss)使用了 7690856kB(约 7.7GB)。