Я использую openjdk 1.8u191 на довольно чистых системах Ubuntu 16.04 и 18.04, хосты x86_64.
Я запускаю это простое приложение:
package net.iponweb;
import java.time.ZonedDateTime;
public class Main {
public static void main(String[] args) throws InterruptedException {
while(true) {
System.out.println(ZonedDateTime.now());
Thread.sleep(1000);
}
}
}
с этой командной строкой:
java -jar sigalrm-1.0-SNAPSHOT.jar
Теперь, когда я посылаю сигнал SIGALRM этому java-процессу kill -14 ${PID}
, я испытываю его немедленное завершение со следующим выводом:
2019-03-07T18:36:13.150+03:00[Europe/Moscow]
2019-03-07T18:36:14.151+03:00[Europe/Moscow]
2019-03-07T18:36:15.152+03:00[Europe/Moscow]
Alarm clock
Что меня беспокоит, так это то, что я потратил пару часов, пытаясь найти какую-либо информацию, касающуюся прерывания JIGM SIGALRM, но не нашел ее. У меня вопрос: это ожидаемое поведение или детали, связанные с реализацией, и следующая остановка для меня - исходный код JVM? Потому что я не ожидал, что SIGALRM закроет мои приложения, и теперь я брожу, если есть еще.