問題描述
運行在主機中的 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
參考文獻
WikiNotes/進程被意外殺死(KILL/9)
How to find Which Process Is Killing mysqld With SIGKILL or SIGTERM on Linux – The Geek Diary
SystemTap - Debian Wiki