我有一個運行另一個(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(哈哈同名)。我現在正在查找它,但是我認爲只有在當前的Java Process ID正在運行時才運行該python Process的某些內容才能解決問題。不知道我是否在正確的道路上,但這個問題真的讓我感到不安。 – Vinay