This is minimum java code to hook shutdown
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
*/
package com.dedetok.javasertvicetest;
/**
*
* @author dedetok
*/
public class JavaSertviceTest {
private static volatile boolean running = true;
public static void main(String[] args) {
System.out.println("Hello World!");
Runtime.getRuntime().addShutdownHook(new Thread(() -> {
System.out.println("Shutdown hook triggered");
running = false;
// Cleanup resources here
// Close database connections
// Flush logs
// Stop worker threads
// Main shutdown path
//cleanupResources();
System.out.println("Cleanup complete");
}));
System.out.println("Daemon started");
while (running) {
System.out.println("Working...");
try {
Thread.sleep(5000);
} catch (InterruptedException ex) {
System.getLogger(JavaSertviceTest.class.getName()).log(System.Logger.Level.ERROR, (String) null, ex);
}
}
}
}
to run/test this application, you can not run it inside netbeans. use terminal to run it, go to your project root and run
$ java -cp target/classes \
com.dedetok.javasertvicetest.JavaSertviceTest
Hello World!
Daemon started
Working...
Working...
^CShutdown hook triggered
Cleanup complete