KILL
Section: System Calls (2)
索引
jman
BSD mandoc
索引
名称
kill
- プロセスにシグナルを送信する
索引
ライブラリ
Lb libc
索引
書式
In sys/types.h
In signal.h
Ft int
Fn kill pid_t pid int sig
索引
解説
Fn kill
システムコールは、
Fa sig
によって指定されたシグナルをプロセスまたはプロセスのグループである
Fa pid
に送信します。
Fa sig
引数は、
sigaction(2)
で規定されたシグナルの 1 つにすることもできますし、0 にすることもできます。
0 の場合は、エラーチェックを実行しますが、実際にシグナルは送信されません。
これを使用して
Fa pid
の有効性をチェックできます。
プロセスが
Fa pid
によって指定されたプロセスにシグナルを送信するパーミッションを持つためには、
受信するプロセスの実ユーザ ID または実効ユーザ ID が
送信プロセスの対応するものと一致するか、
またはユーザは該当する特権を持っている (ユーザ ID 設定で与えられた特権、
またはユーザがスーパユーザである) 必要があります。
唯一の例外はシグナル SIGCONT で、これだけは呼び出し側と同一のセッション ID を
持っているプロセスに、必ず送信できます。
- Fa pid が 0 より大きい場合
-
Fa sig
シグナルは ID が
Fa pid
に等しいプロセスに送信されます。
- Fa pid が 0 の場合
-
Fa sig
シグナルはグループ ID が送信側のプロセスグループ ID と等しく、それについて
プロセスがパーミッションを持っているすべてのプロセスに送信されます。
これは
killpg(2)
の変種です。
- Fa pid が -1 の場合
-
ユーザにスーパユーザの特権がある場合、システムプロセス
( P_SYSTEM
フラグが設定されている)、ID が 1 のプロセス (通常は
init(8))
、
およびシグナルを送信しているプロセスを
除くすべてのプロセスにシグナルが送信されます。
ユーザがスーパユーザでない場合、シグナルを送信しているプロセスを除く、
ユーザと同じ uid のすべてのプロセスにシグナルが送信されます。
いずれかのプロセスにシグナルを送信できた場合、エラーは返されません。
System V との互換性を保つために、プロセス番号が -1 以外の負数の場合、
プロセス番号の絶対値に等しいプロセスグループ ID を持つ
すべてのプロセスにシグナルが送信されます。
これは
killpg(2)
の変種です。
索引
戻り値
Rv -std kill
索引
エラー
Fn kill
システムコールは次の場合に処理に失敗し、シグナルは送信されません:
- Bq Er EINVAL
-
Fa sig
引数が有効なシグナル番号ではありません。
- Bq Er ESRCH
-
Fa pid
で指定されたプロセスに対応するプロセスが検出できません。
- Bq Er ESRCH
-
プロセス ID は 0 として与えられたものの、
送信プロセスにプロセスグループがありません。
- Bq Er EPERM
-
送信プロセスはスーパユーザではなく、その実効ユーザ ID が受信プロセスの
実効ユーザ ID と一致しません。
プロセスグループにシグナルを送信するとき、グループのメンバの
いずれかにシグナルを送信することができない場合、このエラーが返されます。
索引
関連項目
getpgrp(2),
getpid(2),
killpg(2),
sigaction(2),
raise(3),
init(8)
索引
規格
Fn kill
システムコールは
St -p1003.1-90
に適合しています。
索引
歴史
Fn kill
関数は
AT&T System
v7
ではじめて登場しました。
索引
Index
- 名称
-
- ライブラリ
-
- 書式
-
- 解説
-
- 戻り値
-
- エラー
-
- 関連項目
-
- 規格
-
- 歴史
-
Time: 07:06:27 GMT, January 12, 2009