fork() 呼び出しを使用してソケット プログラミングの例を実行しようとしていますが、問題は次のとおりです。子プロセスがジョブを終了したときに、他のすべてのプロセスを強制終了したい。私が他の人に信号を送ったら...これは可能ですか、それとも誰かが私に方法を教えてくれますか?
質問する
1713 次
3 に答える
3
partent の開始時 (子を fork する前) に、 を呼び出しますsetpgid(0,0)
。これにより、プロセス グループ ID が親の PID と同じになります。この PGID は各子によって継承され、プロセスのいずれかが を呼び出すことによって、グループ内のすべてのプロセスにシグナルを送信できますkill(signal, -getpgid(0))
。
于 2013-05-19T15:43:55.837 に答える
1
プロセス グループを強制終了する通常の方法は、killpg() システム コールを使用することです。マニュアルページから:
「killpg() はシグナル sig をプロセス グループ pgrp に送信します。」
killpg() とともに、グループを適切にセットアップするために get/setpgid も必要になる場合があります。
于 2013-05-19T16:45:55.207 に答える
0
これを使用できます:
killpg( 0, SIGNALTYPE);
すべてのチャイルドにシグナルを送ることができます。
于 2014-04-24T08:09:24.320 に答える