[英]Linux SIGINT passive capture
Linux內核是否有地方被動地記錄SIGKILL(kill -9)關閉請求?
我有一個正在任意關閉的JVM,並且我懷疑,根據現有的證據,這個流失的進程正在以某種方式關閉JVM進程,從而關閉了它。 我擁有完善的日志記錄,但是為了證實自己的懷疑,我必須將日志記錄級別提高到壓倒性的水平。
我已經通過/ var / log進行了詳盡的研究,似乎找不到任何可能捕獲和記錄這些SIGKILL事件的地方。 有什么想法可以找到這些事件(如果存在)嗎?
選項1:
如果您的內核支持ftrace (很有可能),請嘗試使用Brendan Gregg的perf-tools中的killsnoop
工具 :
wget https://raw.githubusercontent.com/brendangregg/perf-tools/master/killsnoop
chmod +x killsnoop
sudo ./killsnoop -s
killsnoop_example.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
,我登錄了,執行了cat /proc/siglog
,發現我的服務被客戶自己的越野車監視腳本殺死了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.