一、接收信号
1、在Linux中执行kill -l查看信号,共有64中信号
2、实现SignalHandler接口并注册信号。
import sun.misc.Signal; import sun.misc.SignalHandler; public class SingleTest implements SignalHandler { public static void main(String[] args) { SingleTest singleTest = new SingleTest(); Signal.handle( new Signal( "TERM" ),singleTest ); // kill -15 Signal.handle( new Signal( "USR1" ),singleTest );// kill -10 Signal.handle( new Signal( "USR2" ),singleTest );// kill -12 while(true){ //业务处理逻辑 } } @Override public void handle(Signal signal) { //执行释放资源的动作 } }
二、注册钩子
Runtime.getRuntime().addShutdownHook(new Thread("xx-shutdown-hook") { @Override public void run() { //资源释放动作 } });