シグナルを拾う。

Javaで、シグナルを扱えないものかと思い、探してみたらあった。
sun.miscだけど。

実装は簡単。
SignalHandlerを実装して、Signalのhandleに登録するだけ。

import sun.misc.Signal;
import sun.misc.SignalHandler;

public class SignalTestMain {
    public static void main(String[] args) {
                Signal signal = new Signal("TERM");
                Signal.handle(signal, new SignalHandler() {
                        public void handle(Signal signal) {
                                System.out.println("name:" + signal.getName());
                                System.out.println("number:" + signal.getNumber());
                        }
                });

                while(true){}

    }
}

Signal#raise(Signal)ってメソッドもあってこいつは、シグナルを発生させることができる。