Provided by: manpages-ja-dev_0.5.0.0.20131015+dfsg-2_all bug

名前

       killpg - シグナルをプロセス・グループに送る

書式

       #include <signal.h>

       int killpg(int pgrp, int sig);

   glibc 向けの機能検査マクロの要件 (feature_test_macros(7)  参照):

       killpg():
           _BSD_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED

説明

       killpg()  は sig で指定したシグナルを pgrp で指定したプロセス・グループに送る。 シグナルの
       定義の一覧は signal(7)  を参照のこと。

       引き数 pgrp に 0 を指定した場合には killpg()  は呼び出し元のプロセスが属しているプロセス・
       グループに対してシグナルを送る。 (POSIX では以下のように記述されている: pgrp が 1 以下であ
       る場合、動作は未定義である。)

       プロセスがシグナルを送信する許可を持つためには、 プロセスが特権 (Linux では CAP_KILL  ケー
       パビリティ (capability)) を持つか、 送信元プロセスの実ユーザー ID または実効ユーザー ID が
       送信先プロセスの実 set-user-ID または保存 set-user-ID と 等しくなければならない。  SIGCONT
       の場合、送信プロセスと受信プロセスが 同じセッションに属していれば十分である。

返り値

       成功した場合、0 が返される。エラーが発生した場合、-1 が返され、 errno が適切に設定される。

エラー

       EINVAL sig で指定された値は無効なシグナル番号である。

       EPERM  プロセスが、受信するプロセスのいずれに対しても シグナルを送る許可を持っていない。

       ESRCH  pgrp で指定されたプロセス・グループに属するプロセスが存在しなかった。

       ESRCH  プロセス・グループとして  0 が指定されたが、送信プロセスは プロセス・グループを持っ
              ていない。

準拠

       SVr4, 4.4BSD (killpg()  は 4BSD で初めて追加された), POSIX.1-2001。

注意

       BSD 系システムと System V 系システムでは、 許可のチェックに様々な違いがある。 kill(2)   に
       ついての  POSIX  の原理  (rationale)  を参照すること。  POSIX で記述されていない違いとして
       は、返り値 EPERM がある。 BSD では「送信先プロセスの許可のチェックが 1  つでも失敗した場合
       は、  シグナルが送信されず、 EPERM が返される」と記述されている。 POSIX では「送信先プロセ
       スの許可のチェックが全て失敗した場合にのみ、 EPERM が返される」と記述されている。

       Linux では、 killpg()  はライブラリ関数として実装されており、 kill(-pgrp, sig)  の呼び出し
       が行われる。

関連項目

       getpgrp(2), kill(2), signal(2), credentials(7), capabilities(7)

この文書について

       この  man ページは Linux man-pages プロジェクトのリリース 3.54 の一部 である。プロジェクト
       の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。