Скажем, например, у меня есть приложение, работающее в терминале Linux, и я нажимаю «CTRL + C» на клавиатуре, чтобы убить процесс, который завершит программу Java.
Есть ли способ поймать этот «запрос» в моем приложении Java, чтобы я мог изящно закрыть его и освободить все ресурсы/журналы записи. У меня есть несколько разных потоков, если это имеет значение для ответа.
Я знаю, что у вас есть addShutDownHook, но, как написано в документации Java, он не вызывается при определенных обстоятельствах, например, сигнал уничтожения от «CTRL + C» в Linux... есть ли другие способы?
Runtime.getRuntime().addShutdownHook(new Thread()
{
public void run ()
{
// TODO: implement graceful shutdown here.
}
});