У меня есть приложение Java8, работающее на RHEL 6.10. Это приложение регистрирует обработчик выключения обычным способом:
Thread shutdownThread = new Thread(()=>{
Logger.info("Got shutdown signal");
// Do cleanup
});
Runtime.getRuntime().addShutdownHook(shutdownThread);
Это приложение запускается сборкой Jenkins (с BUILD_ID
env var, установленным в dontkillme
). Приложение успешно инициализируется, но затем через ~ 30 секунд вызывается ловушка завершения работы, и приложение завершается. Я пытаюсь выяснить, кто меня закрывает и почему. Я наблюдал за top
и не похоже, что память - это проблема во время работы, поэтому я не думаю, что убийца OOM является виновником. Я также посмотрел на /var/log/dmesg
и /var/log/messages
и не вижу там ничего релевантного. Я не думаю, что Дженкинс убил бы меня, так как я установил BUILD_ID
, а также потому, что приложение умирает, пока «родительское» задание Дженкинса все еще выполняется.
Какие еще методы / инструменты я могу использовать, чтобы увидеть, что происходит? Обратите внимание, что моя среда очень заблокирована, поэтому было бы сложно скачать и запустить что-нибудь из inte rnet, надеюсь, что в стандартной установке RHEL6 есть что-то, что я мог бы использовать.