2016-02-22 14 views
2

Есть ли место, где ядро ​​Linux пассивно регистрирует запросы на завершение SIGKILL (kill -9)?Пассивный захват Linux SIGINT

У меня есть работа JVM, которая произвольно закрывается, и я подозреваю, что на основе имеющихся доказательств закрывается случайным процессом, который каким-то образом выдает остановку процесса JVM. У меня есть надежная регистрация на месте, но чтобы подтвердить мои подозрения, мне пришлось бы повысить уровень ведения журнала до огромных уровней.

Я исследовал исчерпывающе через/var/log и, похоже, не нашел места, которое могло бы захватить и зарегистрировать эти события SIGKILL. Любые идеи, где я могу найти эти события, если они существуют?

+0

SIGINT или SIGKILL? Во всяком случае, я не думаю, что есть какой-либо журнал сигналов, которые отправляются процессам. – Barmar

ответ

0

Вариант 1:

Если ваше ядро ​​имеет поддержку ftrace (весьма вероятно) попробовать killsnoop инструмент от Brendan Грегга perf-tools:

wget https://raw.githubusercontent.com/brendangregg/perf-tools/master/killsnoop 
chmod +x killsnoop 
sudo ./killsnoop -s 

Дополнительные примеры использования в файле killsnoop_example.txt.

Вариант 2: (пассивный захват)

Если ваше ядро ​​не имеет никакой поддержки ftrace вы можете использовать модуль kernel-siglog ядра с https://github.com/nfedera/kernel-siglog:

git clone https://github.com/nfedera/kernel-siglog.git 

cd kernel-siglog/ 
make 

sudo insmod siglog.ko 

Вставив модуль siglog ядро ​​будет записывать последние 10 000 сигналов в /proc/siglog

У меня была аналогичная проблема, и я нашел преступника, используя этот модуль ядра. Я вставил его на сервер клиента в течение нескольких недель, и когда служба была убита, я вошел в систему, сделал cat /proc/siglog и обнаружил, что моя служба была убита собственным скриптом сторожевого таймера клиента.

+0

Да. Это именно то, что я искал! Спасибо @ – user3524037

+0

Рад, что я мог бы помочь. Однако, не нужно благодарить в комментарии, вместо этого вы должны прочитать [this] (http://stackoverflow.com/help/someone-answers) и действовать соответственно. – gollum