問題タブ [sigchld]

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.

0 投票する
1 に答える
535 参照

python - SIGCHLDによって中断されないpythonselect

私は次のコードを持っています:

私のプログラムがこれを待っている間、シグナル(SIGCHLDなど)がある場合、selectはselect.errorで中断されます。ただし、select?に入る前に保留中のシグナルがある場合でも、これが機能するかどうかはわかりません。(connection_fdソケットはブロッキングに設定されています)。

保留中のシグナルがあるのにselectが中断されない可能性はありますか?

0 投票する
1 に答える
1313 参照

unix - ゾンビ プロセス、SIGCHLD、UNIX での終了

子からのすべての出口 (_exit または exit) は、SIGCHLD をその親に送信しますか?そうである場合、ゾンビ プロセスはどのように作成されますか?待機システム コールは、通常、SIGCHLD ハンドラで呼び出されます。

0 投票する
1 に答える
1410 参照

c - BSD で sigtimedwait() を使用して SIGCHLD をキャッチする

FreeBSD で sigtimedwait() を使用して SIGCHLD シグナルをキャッチするのに問題があります。次のソースは Debian GNU/Linux 7 でうまく動作しますが、FreeBSD 9.1 では一時的に利用できないリソースを提供してくれます。

Linux での出力:

FreeBSD での出力:

signal() を使用すると BSD で問題なく動作しますが、これは私が望むものではありません。私は何が欠けていますか?

0 投票する
3 に答える
2915 参照

c - SIGCHLD がキャッチされない

次のコードは、親プロセスが 10 秒間スリープしている間に、子プロセスとして "sleep 3" を fork して実行することを意図しています。親プロセスは、「スリープ 3」が終了した 3 秒後に SIGCHLD を受け取ることを期待しています。

これは起こらず、代わりに次のようになります。

ps -efを示しています

続いて:

次の 7 秒間 (この時点で親プロセスは終了します)。

問題は、clean_up_child_process決して呼び出されないことです。

私が犯した間違いは何ですか?

ゾンビテスト.c:

0 投票する
2 に答える
1728 参照

java - Java シグナル チェーン

ProcessLinuxでネイティブにプロセスを実行する 特殊なタイプのクラスを持つプログラムがあります。

プロセスの特別な処理を行う必要があるため、Java のProcessクラスはまったく使用しません。SIGCHLDこのため、プロセスがいつ終了するかを認識できるように、 用の独自のシグナル ハンドラもインストールします。

ただし、Runtime.exec()コードに呼び出しを追加しただけで、 の独自のシグナルハンドラーがインストールされSIGCHLDているようSIGCHLDです。oracleからのシグナルチェーンの指示に従いましたが、同じ問題が発生し、SIGCHLD.

したがって、基本的な質問は次のとおりですSIGCHLD。Java でチェーンすることは可能ですか?

0 投票する
3 に答える
4251 参照

c - SIGCHLD を送信する子プロセス

シグナルの処理とプロセスを理解しようとしています。複数の子プロセスを作成した親プロセスがあります。親プロセスには、すべての子プロセスのリストがあります。子が終了したら、リストから削除したい。子供が解雇されると、彼SIGCHLDは親に送っていることを私は知っています。OK、ここがトリッキーな部分です。どうすれば、その子が終了したのか、停学になったのか、それとも何か他のことなのかを知ることができますか?

0 投票する
1 に答える
1603 参照

c - SIGTSTP と SIGCHLD の関係は何ですか

それぞれに 2 つのハンドラー (SIGTSTP、SIGCHLD) があります。SIGTSTP を使用してプロセスを一時停止すると、SIGCHLD のハンドラー関数も実行されます。これを防ぐにはどうすればよいですか。

シグナルハンドラ:

Susp_Bg_Pid は、一時停止されたプロセス ID を保存するために使用されます。
susp は、親プロセスが中断されているかどうかにかかわらず、親プロセスを「スマッシュ」する状態を示します。