是否有Linux内核被动地记录SIGKILL (杀死-9)关闭请求的地方?
我有一个正在任意关闭的JVM运行,并且我怀疑,根据现有的证据,正在被一个杂乱无章的进程关闭,该进程正以某种方式发出JVM进程的关闭。我已经有了可靠的日志记录,但为了确认我的怀疑,我必须将日志记录级别提高到压倒一切的水平。
我对/var/log进行了详尽的研究,似乎找不到任何可能捕获和记录这些SIGKILL事件的地方。如果这些事件存在的话,我有什么想法吗?
发布于 2016-02-23 13:00:17
选项1:
如果您的内核有飞迹支持(很可能),那么尝试来自Brendan的perf-工具的killsnoop工具
wget https://raw.githubusercontent.com/brendangregg/perf-tools/master/killsnoop
chmod +x killsnoop
sudo ./killsnoop -sexample.txt文件中的更多使用示例。
选项2:(被动捕获)
如果您的内核没有ftrace支持,您可以使用来自https://github.com/nfedera/kernel-siglog的kernel-siglog内核模块:
git clone https://github.com/nfedera/kernel-siglog.git
cd kernel-siglog/
make
sudo insmod siglog.ko一旦插入,siglog内核模块将在/proc/siglog中记录最后10,000个信号
我也遇到了类似的问题,并发现了使用这个内核模块的罪魁祸首。我在一个客户的服务器上插入了几个星期,当服务终止时,我登录,做了一个cat /proc/siglog,发现我的服务被客户自己的buggy看门狗脚本杀死了。
https://stackoverflow.com/questions/35564834
复制相似问题