KILL(2) FreeBSD システムコールマニュアル KILL(2)
名称
kill − プロセスにシグナルを送信する |
ライブラリ
標準 C ライブラリ (libc, −lc) |
書式
#include <sys/types.h> int |
kill(pid_t pid, int sig); |
解説 |
kill() システムコールは、 sig によって指定されたシグナルをプロセスまたは プロセスのグループである pid に送信します。 sig 引数は、 sigaction(2) で 規定されたシグナルの 1 つにすることもできますし、0 にすることもできます。 0 の場合は、エラーチェックを実行しますが、実際にシグナルは送信されませ ん。これを使用して pid の有効性をチェックできます。 プロセスが pid によって指定されたプロセスにシグナルを送信するパーミッショ ンを持つためには、受信するプロセスの実ユーザ ID または実効ユーザ ID が送 信プロセスの対応するものと一致するか、またはユーザは該当する特権を持って いる (ユーザ ID 設定で与えられた特権、またはユーザがスーパユーザである) 必要があります。唯一の例外はシグナル SIGCONT で、これだけは呼び出し側と同 一のセッション ID を持っているプロセスに、必ず送信できます。 |
pid が 0 より大きい場合:
sig シグナルは ID が pid に等しいプロセスに送信されます。 pid が 0 の場合: pid が -1 の場合: System V との互換性を保つために、プロセス番号が -1 以外の負数の場合、プロ セス番号の絶対値に等しいプロセスグループ ID を持つすべてのプロセスにシグ ナルが送信されます。これは killpg(2) の変種です。 戻り値 |
関数 kill() は、処理が成功すると値 0 を返します。そうでない場合、値 -1 が 返され、グローバル変数 errno が設定されてエラーを示します。 |
エラー
kill() システムコールは次の場合に処理に失敗し、シグナルは送信されません: |
[EINVAL]
sig 引数が有効なシグナル番号ではありません。 [ESRCH] [ESRCH] [EPERM] 関連項目 |
getpgrp(2), getpid(2), killpg(2), sigaction(2), raise(3), init(8) |
規格
kill() システムコールは ISO/IEC 9945-1:1990 (‘‘POSIX.1’’) に適合していま す。 |
歴史
kill() 関数は Version 7 AT&T UNIX ではじめて登場しました。 FreeBSD 10.0 April 19, 1994 FreeBSD 10.0 |