问题描述
运行在主机中的 dockerd(docker.service)会收到 KILL/9 信号,便退出。
我们们希望知道是哪个进程发送了 KILL 信号。
该笔记将记录:如何定位发送 KILL 信号的进程
解决方法
使用 Audit 或者 SystemTap 进行捕获。由于 SystemTap 比较复杂,我们这里介绍使用 Audit 的方法。
方法一、使用 Audit 捕获信号
第一步、进行 Audit 配置
apt-get install auditd auditctl -a exit,always -F arch=b64 -S kill -k audit_kill # 默认配置已处理日志轮转
第二步、等待 KILL 信号出现……
第三步、通常日志较多,在捕获后,建议尽快结束:
systemctl restart auditd.service
参考文献
How to find Which Process Is Killing mysqld With SIGKILL or SIGTERM on Linux – The Geek Diary
SystemTap – Debian Wiki