ubuntu サーバーでシャットダウン フックを動作させようとしていますが、複数のスレッドに問題があるようです。基本的な ShutdownHook を使用すると、次のコードは、 を使用してプロセスを強制終了したときに機能しkill <PID>
ます。つまり、シャットダウン動作が有効になります。
public static void main(String[] args) {
ShutdownHook shutDown = new ShutdownHook();
shutDown.attachShutDownHook();
while(true){}
}
ただし、追加のスレッドを使用したこの同じコードはそうではありません
public static void main(String[] args) {
ShutdownHook shutDown = new ShutdownHook();
shutDown.attachShutDownHook();
(new Thread() {
public void run() {
while ( true ) {}
}
}).start();
while(true){}
}
何か案は?
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.");
}
}