主要介绍Java 如何对系统信号通知进行获取和处理。直接上demo
@SuppressWarnings("restriction")
public class Test1 implements SignalHandler {
@Override
public void handle(Signal sn) {
System.out.println(sn.getName() + "is recevied.");
}
public static void main(String[] args) throws InterruptedException {
Test1 testSignalHandler = new Test1();
// install signals
Signal.handle(new Signal("USR2"), testSignalHandler);
for (;;) {
Thread.sleep(3000);
System.out.println("running......");
}
}
}
mac 能支持的信号有: kill -l
1) SIGHUP2) SIGINT3) SIGQUIT4) SIGILL
5) SIGTRAP6) SIGABRT7) SIGEMT8) SIGFPE
9) SIGKILL10) SIGBUS11) SIGSEGV12) SIGSYS
13) SIGPIPE14) SIGALRM15) SIGTERM16) SIGURG
17) SIGSTOP18) SIGTSTP19) SIGCONT20) SIGCHLD
21) SIGTTIN22) SIGTTOU23) SIGIO24) SIGXCPU
25) SIGXFSZ26) SIGVTALRM27) SIGPROF28) SIGWINCH
29) SIGINFO30) SIGUSR131) SIGUSR2
信号通知方式:kill -USR2 pid