別の(Python)プログラムをプロセスとして実行するJavaプログラムがあります。プログラムが終了すると `exec`でプロセスを終了する
Process p = Runtime.getRuntime().exec("program.py", envp);
Javaプログラムが処理を終了すると、Python処理も終了します。 finish
コマンドは、Pythonプロセスにシグナルを送信して閉じます。
プロセスがこのように閉じられている通常の状況で:
BufferedWriter output = new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));
output.write("@EOF\n");
output.flush();
しかし、Javaプログラムがクラッシュし、プロセスが閉じていません。クローズコマンドは、クラッシュのために送信されません。プログラムが終了するたびにプロセスを自動的に終了することは可能ですか?
私は実際にこの質問の答えにも本当に興味があります。私はそれを提供することはできませんが、なぜJavaプログラムがクラッシュしているのか分かち合いますか? – Vinay
この質問に答えるには、詳細を提供する必要があります。たとえば、JavaプログラムとPythonプログラムのどちらかまたは両方のソースを自由に変更できますか? –
私はVinay(haha同名)に同意しなければならないでしょう。私は実際にそれを探していますが、現在のJava Process IDが実行されている間だけPython Processを実行する行に沿った何かが、このトリックを行うと思います。私が正しい道にいるかどうかは確かではありませんが、この質問は本当に興味をそそられます。 – Vinay