KILLPG
Section: Linux Programmer's Manual (2)
Updated: 2007-07-26
Index
JM Home Page
roff page
名前
killpg - シグナルをプロセス・グループに送る
書式
#include <signal.h>
int killpg(int pgrp, int sig);
glibc 向けの機能検査マクロの要件
(feature_test_macros(7)
参照):
killpg():
_BSD_SOURCE || _XOPEN_SOURCE >= 500
説明
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)
Index
- 名前
-
- 書式
-
- 説明
-
- 返り値
-
- エラー
-
- 準拠
-
- 注意
-
- 関連項目
-
This document was created by
man2html,
using the manual pages.
Time: 04:31:49 GMT, November 19, 2007