Java: How to handle a SIGTERM only?

2019-02-15 18:45发布

问题:

Is there a way in Java to handle a received SIGTERM?

I am running a java service but do not want to close my java service when the user log off.

Would like to override only the sigterm shutdown handler but retain the handlers for the rest of the signals.

details of signals
a slight variation of this qns

回答1:

If the Signal passed to handle has name "TERM" then do something, otherwise, ignore it.

class MySignalHandler implements SignalHandler {
  public void handle(Signal sig) {
    if (!"TERM".equals(sig.getName())) {
      SigHandler.SIG_DFL.handle(sig);
      return;
    }

    // Handling code goes here.
  }
}