問題タブ [child-process]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java、子プロセスが終了するのを待ちます
Java を使用しProcessBuilder
て、子プロセスのグループを作成しています。waitFor()
結果のオブジェクトのメソッドを使用してProcess
、その特定の子が終了するのを待つことができます。
UNIXシステム コールのように、子が終了するまでブロックすることはできますか?wait()
python - 子プロセスからのメッセージをPythonでstderrとstdoutを介して処理する
私のPythonコードは子プロセスを生成し、stdoutとstderrの両方のメッセージを出力します。別の方法で印刷する必要があります。
子プロセスを生成し、そこからstdoutの結果を取得するための次のコードがあります。
子プロセスがstderrを介してメッセージを出力するかどうかを確認するために、コードを変更するにはどうすればよいですか?
追加した
子プロセスが何かを出力したらすぐに、stderrとstdoutを印刷する必要があります。また、クロスプラットフォームの実装であるため、Mac / Linux/PCで実行する必要があります。
python - 子プロセスを持つPyUnit
一部のPythonコードではfork
、親が終了するのを待つ間、子プロセスで処理を実行します。exec
後ではありませんfork
。
sys.exit
子プロセスがで明示的に終了すると、PyUnitエラーが発生するため、PyUnitでこのコードをテストする際に問題が発生します。
以下のこのコードは問題を引き起こします
これはエラーです
子プロセスが明示的に終了した場合にPyUnitがテストに失敗するのを回避する方法はありますか?
perl - スクリプトの古い実行から子を追跡する
いくつかの子を生成する Perl スクリプトがあります。それらはすべて実行にかなりの時間がかかり、途中でディレクトリとファイルが作成されます。子供たちが自然死する前に変更したいことがよくあるので、すべてをシャットダウンし (これにはいくつかgrep
のkill
呼び出しが含まれます)、子供たちが作成したファイルを削除する必要があります。大したことはないのですが、首が少し痛いです。子がすべて監視されるセットアップを作成したいので、親を再起動すると、まだ実行されている古い子が報告されます。
これまでのところ、実行した子のログ ファイルを PID と共に保持し、それをチェックして、親スクリプトの開始時に更新することをお勧めします。まだ実行中のすべての子を強制終了して報告し、ユーザーが再実行する前にディレクトリとファイルを手動でクリーンアップできるようにします。
私の質問はこれです: ログ ファイルに子を追加するにはどうすればよいですか? 自動的にそれを処理できるトリガーを設定する方法はありますか、それとも新しいプロセスが開始されるコード内の任意の場所でそれを行うことを覚えておく必要がありますか?
ps これを達成するためのより良い方法の提案を歓迎します!
javascript - Node.js での SSH の使用
node.js で ssh 子プロセスを実行し、プログラムで制御しようとしています。私のコード:
コンソールにパスワードを入力することはできますが、その後は何もできません。次のコンソール出力が得られます。
どうすればこれを機能させることができるか考えている人はいますか?
ありがとう!
unix - 子プロセスの stdout と stderr を 2 つの名前付きパイプにリダイレクトする (その後、それらから読み戻す)
別のプロセスで popen() を実行するアプリケーションで作業しています。このプロセスの出力 (stderr と stderr の両方) を、アプリケーションによって作成された 2 つの名前付きパイプにリダイレクトする必要があります。次に、パイプからデータを読み取る必要があります。
動作しません: error.fifoから読み取ろうとすると、アプリケーションがハングします。sleep()
ing / wait()
ing betweenmkfifo()
とpopen()
も機能しません。
動作します。
も機能します。
シェルからも機能します(ただし、私のアプリケーションからは機能しません)。
両方のパイプからの読み取りを機能させる簡単な (または任意の) 方法を見つけることができませんでした。それはどのように達成できますか?
bash - バックグラウンドシェルでSIGINTシグナルをトラップできません
子/バックグラウンドプロセスで実行しているときにシグナルをトラップできません。
これが私の簡単なbashスクリプトです:
これを実行し、後で実行する場合
すべてが期待どおりに機能し、印刷trapped
して終了します。
ここで、次のような親スクリプトから同じスクリプトを開始すると、次のようになります。
その後、子供はもう信号をトラップしません....?
SIGINTの代わりにSIGTERMを使用するように変更した後、正しく機能しているようです...?
debugging - 子プロセスのデバッグ - GDB/DDD
私のプロジェクトは、ほとんどの UNIX シェルと同様に、arglist を & で終了することにより、バックグラウンド処理を行う単純なシェル プログラムを実装することです。私の問題は、バックグラウンド処理で子プロセスを作成する必要がある場合に、GDB でシェルをデバッグする方法です。
私の子処理コードは次のようになります
ps & などのコマンドを実行してブレークポイントを関数パーサーに設定しようとすると、ブレークポイントに到達せずにコマンドが実行されます。これは紛らわしく、このインスタンスではデバッガが役に立たなくなります。私はそれについて何ができますか?
c++ - POSIXで終了した子プロセスを確認しますか?
終了した子プロセスをチェックし、終了した場合はそれらを再起動するプログラムを作成しようとしています。他のプロセスが終了するのを待たずに、プロセスが終了するときにプロセスを再起動する必要があります。私は少し迷っています。これが私がこれまでに行ったコードです。本当に、それは終わっていないか、正しくありません。しかし、おそらく誰かが私を正しい方向に向けることができますか?