Потоковая дамп не генерируется при kill -3
Есть ли вероятность, что kill -3 / quit PID ничего не печатает, т.е. пустой дамп потока? Мы услышали историю от инженера службы поддержки и задались вопросом, могут ли некоторые эксперты подтвердить.
Это на Java 6_26 на RHEL 5
3 ответа
Я видел это только тогда, когда сервер перенаправляет на стандартный вывод, например, JBoss, а стандартный вывод перенаправляется на /dev/null, потому что, кто бы ни настраивал сервер, думал, что все, что идет на стандартный вывод, уже идет в именованный файл журнала.
Вывод на консоль дампа потока JVM на некоторых серверах перенаправляется в файл журнала. В случае Tomcat Server это обычно Catalina.out.
Я видел поведение, которое вы описываете в автономном приложении Java (Oracle JDK 1.6.20+, Linux), но я не могу сказать, как последовательно воспроизвести это поведение. Это могло быть после OutOfMemoryError
в одной из тем, но я не уверен больше.
Я также думаю, что то, что я получил, было не просто пустым дампом, а тем, что команда фактически замерзла и не вернула меня в оболочку, пока я не нажал Ctrl+C после некоторого ожидания. В любом случае, я уверен, что поведение jstack
был точно такой же, как kill -3
, Когда это случилось, приложение было в такой плохой форме, что оно не реагировало на нормальное kill
и только kill -9
работал над этим. Перенаправлений не было, и в обычных условиях приложение реагировало на kill -3
как это должно.