killとpid = 0を介して信号を送信する

killとpid = 0を介して信号を送信する

殺人からman

pidが0の場合、sigはプロセスグループIDが送信者のプロセスグループIDと同じで、そのプロセスにシグナルを送信する権限を持つすべてのプロセス(未指定のシステムプロセスセットを除く)に送信する必要があります。

それはまさにどういうfor which the process has permission to send a signal意味ですか?どのプロセスが信号を受信して​​いるかを確認する方法は?

たとえば、kill -9 0現在開始されているすべてのプロセスを終了します。端末そして端末それ自体。それとも別のものはありますか?

ベストアンサー1

それはまさにどういうfor which the process has permission to send a signal意味ですか?

マンページに答えがすぐに示されています。

プロセスがシグナルを送信する権限を持つには、権限が必要です。それ以外の場合は、送信プロセスの実際のユーザーIDまたは実効ユーザーIDが、ターゲットプロセスの物理ユーザーまたは保存されたセットユーザーIDと同じでなければなりません。の場合信号制御送受信プロセスが同じセッションに属していれば十分です。

どのプロセスが信号を受信して​​いるかを確認する方法は?

プロセスのリストを繰り返し、シグナル0(模擬実行シグナル)を使用して各プロセスを終了します。これにより、実際の信号を送信する権限があるかどうかがわかります。

おすすめ記事