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