Provided by: manpages-ja-dev_0.5.0.0.20210215+dfsg-1_all
名前
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.79 の一部である。 プロジェクト の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。