我有一個java應用程序,我在linux系統上運行基於控制檯的程序,我正在閱讀那些程序的輸出,然後我的java應用程序將它發送到網頁。Java啓動獨立進程
但是,一旦我關閉了我的Java應用程序,所有的進程將會「卡住」,或者他們只是簡單地崩潰。所以每次我想對我的java應用程序進行一些更改時,我需要重新啓動它,我還必須關閉從我的應用程序運行的所有進程。我想在關閉我的應用程序時保存它們的PID,然後根據已保存的進程PID再次對這些進程執行控制(輸出流)。
有沒有辦法做到這一點?
我運行像這樣我的程序:
ProcessBuilder processBuilder = new ProcessBuilder(new String[] { "su", "-
s", "/bin/sh", "myuser", "-c", "java -jar myjar.jar" });,
Process p = processBuilder.start();
編輯:
我的問題是沒有找到進程PID我的問題是,我從我的Java應用程序lanched子過程我的Java應用程序後崩潰被關閉/終止,我需要他們繼續運行,即使我的應用程序正在重新啓動/停止。
在unix.stackexchange,我發現這一點:https://unix.stackexchange.com/questions/31824/how-to-attach-terminal-to -detached-process可以確認這解決了你的問題,然後我將這裏的問題作爲重複來解決嗎? – ControlAltDel
不,這不解決我的問題,它的Java相關不終端相關。我需要在java中「分離」我的進程,而不是在終端。我需要以某種方式改變我從java應用程序啓動我的過程的方式。那就是我所要求的幫助。 – Welite