私は別のプロセスでコマンドを実行すると、例えばそのJavaDocの状態Runtime.getRuntime().exec(...)
方法、使用して:外部プロセスから不要なストリームをどうすればいいですか?
Executes the specified command and arguments in a separate process.
を私はプロセスが生きることを知って、このプロセスからのストリームを行うには何が必要ですJavaプログラムが存在するまで? (これは詳細ですが、Javaプログラムはこのプロセスを強制終了させ、プロセス自体には、JavaプログラムがJavaプログラムを実行していないことを認識すると、安全性が組み込まれています)。
すべてのエラーメッセージとstdoutが/ dev/nullにリダイレクトされ、すべての通信がファイル/ソケット/その他を使用して行われているためなど、このプロセスで出力がまったく生成されないと考えると、何が必要ですか入力ストリームで?
stdout/stderrを読み込もうとすると、1つ(または2つ)のJavaスレッドを何も実行しないでください。
stdout/stderrがまったく生成されないJavaプログラムから生成された、長寿命の外部プロセスを扱う正しい方法は何ですか?
EDIT
基本的に私はを/ dev/nullにすべてをリダイレクトするようにしてくださいになり、別のシェルスクリプトでシェルスクリプトを包みます。私の "outter"シェルスクリプト(すべてを/ dev/nullにリダイレクトするもの)がまだstdoutまたはstderrに何かを生成している場合、私のUn * xが非準拠であると確信しています。しかし、私はアプリのライフサイクル中に何かのためにスレッドを稼働させなければならないと考えていることに気付いています。本当に心を揺さぶる。
興味深い。私は自分の質問を編集します...基本的には、すべてを*/dev/null *にリダイレクトする別のシェルスクリプトでシェルスクリプトをラップします。 * outterシェルスクリプト(すべて*/dev/null *にリダイレクトするスクリプト)が* stdout *や* stderr *上に何かを生成しても、Un * xが非準拠であることは確かです。 – SyntaxT3rr0r
@ SyntaxT3rr0r - わかりました。私はそれらの編集的な人々のほんの一人です。 :)私は余分なスレッドがおそらく不要であることに同意します。 – rfeak