如何正确查看进程被 kill 的历史记录呢?

2020-07-01 16:13:49 +08:00
 uminokoe

linux 环境下,当内存不足时,系统好像会 kill 掉内存占用最高的进程,通过下面的命令可以查看到记录

dmesg -T | egrep -i -B100 'killed process'

问题来了,日志中只会显示进程名称,类似下面的。那么有没有什么参数可以显示出详细的信息呢?比如 ps -f,这样可以知道执行文件的位置,命令的参数等....

[57014246.819564] [ 8437]     0  8437   903792   100742     281        5             0 java
[57014246.819566] [ 8803]     0  8803   904802   102627     290       18             0 java
[57014246.819615] Out of memory: Kill process 9929 (java) score 111 or sacrifice child
[57014246.822405] Killed process 9929 (java) total-vm:3630468kB, anon-rss:505548kB, file-rss:0kB, shmem-rss:0kB
5993 次点击
所在节点    Linux
8 条回复
lenqu
2020-07-01 16:30:08 +08:00
journalctl _PID=9929
uminokoe
2020-07-01 16:39:41 +08:00
@lenqu 感谢回复,journalctl 中记录的只有通过 systemd 管理的,但是被 kill 的进程并没有使用到 systemd
julyclyde
2020-07-01 16:52:46 +08:00
只有 out of memory 的才会有日志
普通 kill 没有
BlueSummer8
2020-07-01 18:09:37 +08:00
最好是研究某个程序的日志比较靠谱些
lenqu
2020-07-01 18:27:47 +08:00
@uminokoe 没事,实在不行一个一个排查启动进程?
dant
2020-07-01 19:22:35 +08:00
Linux audit framework
js8510
2020-07-02 13:48:18 +08:00
byzf
2020-07-16 14:02:36 +08:00
atop, audit

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/686286

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX