从UNIX关闭挂钩

Ree*_*ese 5 java unix shutdown-hook

我试图让我的Java程序在我的unix服务器上正常退出.我有一个jar文件,我早上通过cron工作开始.然后在晚上,当我想关闭它时,我有一个cron作业,它调用一个找到PID和调用的脚本kill -9 <PID>.但是,当我以这种方式终止时,似乎没有激活我的关闭挂钩.我也试过kill <PID>(没有-9)我也遇到了同样的问题.如何确保调用关闭挂钩?或者,也许每天都有更好的方法来杀死我的进程.

class ShutdownHook {

    ShutdownHook() {}

    public void attachShutDownHook() {

        Runtime.getRuntime().addShutdownHook(new Thread() {
        @Override
        public void run() {
                System.out.println("Shut down hook activating");
         }
        });
        System.out.println("Shut Down Hook Attached.");
    }   
}
Run Code Online (Sandbox Code Playgroud)

anu*_*ava 6

您可以在Unix上使用这样的代码来捕获SIGINT(#2)信号:

Signal.handle(new Signal("INT"), new SignalHandler() {
      public void handle(Signal sig) {
      // Forced exit
      System.exit(1);
   }
});
Run Code Online (Sandbox Code Playgroud)