私は、Linuxシステム上でコンソールベースのプログラムを実行するJavaアプリケーションを持っています。これらのプログラムの出力を読んでいて、JavaアプリケーションがWebページに送信しています。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();
編集:
私の問題は、私の問題は私のjavaアプリからlanched私のサブプロセスが私のjavaアプリの後にクラッシュされていることであるプロセスのPIDを見つけていません私のアプリが再起動/停止している間も実行を継続する必要があります。
unix.stackexchangeで、私はこれを見つけた:https://unix.stackexchange.com/questions/31824/how-to-attach-terminal-to -detached-processこれで問題が解決したことを確認できますか? – ControlAltDel
これは私の問題を解決しません、そのjava関連端末関連ではない。私はターミナルではなくjavaで自分のプロセスを「分離」する必要があります。私は何とか私はJavaアプリケーションから私のプロセスを起動している方法を変更する必要があります。それは私が助けを求めているものです。 – Welite