2
私はSystem.exit(0);
を実行して、すぐにカーネルパニックなどで同じアプリケーションを再起動する必要がある場合があります。しかし、私がSystem.exit(0)を呼び出すと、まずexec()をどのように呼び出すのですか? linuxのように私はBASHと一緒に作業しました。Java - 自分自身を閉じて自分のソフトウェアカーネルパニックなどの自分自身を再起動するにはどうすればいいですか?
#!/bin/bash
pkill java;
sleep 1;
java -cp /var/tmp/dist/Kernel.jar main.Kernel
Main.java:Tanuki Service Wrapperに
/* Windows platform running */
public class Main {
public static void main(String[] args)
{
// other activity happening.... for ages
//
// Suddently there will be a kernel panic it is better to do a software reboot
// remotely
//
}
public static rebootSoftwareKernel()
{
System.exit(0); // Exit completely
Runtime.getRuntime().exec(MyConstant.RunItSelfSoftReboot()); // Restart this same
}
}
exitを呼び出す前にリブートを実行できますか?すぐに古いプロセスをシャットダウンする前に新しいプロセスを起動することは可能ですか?また、pkillが最善の選択肢ですか?他のJavaプロセスが実行中の場合はどうなりますか? – jmort253
私は 'exec()を呼び出します。 System.exit(0); 'それは同期していません。 execは同じアクティブなインスタンスを実行しているため、複製することはできません。だから失敗する。 – YumYumYum