簡體   English   中英

Linux SIGINT被動捕獲

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM