In c, the corresponding signal information should be controlled, and simple signal capturing can also be implemented in java;
It can be used as a reference for clearing data when the program is closed,
The procedure is as follows:
Package com. i5a6. signal;
Import sun. misc. Signal;
Import sun. misc. SignalHandler;
Public class TestSignal implements SignalHandler {
Public static void main (String [] args) throws InterruptedException {
TestSignal tsh = new TestSignal ();
Signal. handle (new Signal ("TERM"), tsh); // kill-15 common kill
Signal. handle (new Signal ("INT"), tsh); // Ctrl + c
// Signal. handle (new Signal ("KILL"), tsh); // kill-9 no Support
// Signal. handle (new Signal ("USR1"), tsh); // kill-10
// Signal. handle (new Signal ("USR2"), tsh); // kill-12
For (;;)
{
Thread. sleep (3000 );
System. out. println ("running ......");
}
}
Private void signalCallBack (Signal sn)
{
System. out. println (sn. getName () + "is recevied .");
}
@ Override
Public void handle (Signal sn ){
SignalCallBack (sn );
}
}
Compile it in eclipse. After adjusting the access and warning of compiled, compiled the jar package that can be run;
Run: java-jar TS. jar
Then, send the kill command to view the successfully captured signal.
None of the annotated listeners can be registered. Record