killpg
1. killpg.2.man
Manpage of KILLPG
KILLPG
Section: Linux Programmer's Manual (2)Updated: 2010-09-20
Index Return to Main Contents
名前
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)
Index
This document was created by man2html using the manual pages.
Time: 17:13:47 GMT, January 19, 2012
2. killpg.3.man
Manpage of KILLPG
KILLPG
Section: Linux Programmer's Manual (3)Updated: 1993-04-04
Index Return to Main Contents
名前
killpg - プロセスグループの全メンバにシグナルを送る書式
#include <signal.h> int killpg(pid_t pgrp, int signal);
説明
killpg() 関数は、プロセスグループ pgrp の全てのプロセスにシグナル signal を送る。 もし pgrp が 0 ならば、そのプロセス自身のプロセスグループにシグナルを送る。pgrp が 1 より大きい場合は、以下の呼び出しと等価である。
kill(-pgrp , signal);
返り値
エラーが発生した場合は -1 が、成功した場合は 0 が返される。エラー
以下に示すエラーの一つが errno に返される:- EINVAL
- シグナルが無効である。
- EPERM
- 呼び出しプロセスのユーザ ID が、シグナルを送られるプロセスのユーザ ID と 一致せず、かつユーザ ID がスーパーユーザの ID ではない。
- ESRCH
- プロセスグループが存在しない。
準拠
SUSv2, POSIX.1-2001関連項目
kill(2), signal(2), sigqueue(2), signal(7)
Index
This document was created by man2html using the manual pages.
Time: 17:13:47 GMT, January 19, 2012




