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

名称
ライブラリ
書式
解説
戻り値
エラー
関連項目
規格
歴史

jman



Time: 07:06:27 GMT, January 12, 2009