在Linux(CentOS 6)上運行的Java 8應用程序中,我希望能夠正常終止它並記錄捕獲信號的類型(SIGTERM,SIGINT,SIGHUP) 。Java程序的優雅終止和終止信號的記錄
private static volatile boolean die = false;
public static void main(String[] args) throws InterruptedException
{
// Catch terminate signals
Runtime.getRuntime().addShutdownHook(
new Thread()
{
@Override
public void run()
{
System.out.println("Caught signal " + ???);
die = true;
System.exit(1);
}
}
);
int i = 0;
while (true && !die) {
System.out.println("Test " + i++);
Thread.sleep(4000);
}
if (die) {
System.out.println("Dying...");
Runtime.getRuntime().halt(1);
}
}
- 這是實現正常終止的好辦法?
- 如何打印出捕捉到的信號?