kill(2) FreeBSD 一般コマンドマニュアル

kill

前のページ 上に戻る 次のページ

kill




書式

     #include <sys/types.h>
     #include <signal.h>

     int
     kill(pid_t pid, int sig);


解説

     kill() 関数は、 sig によって指定されたシグナルをプロセスまたはプロセスの
     グループである pid に送信します。 sig は、 sigaction(2) で規定されたシグ
     ナルの 1 つにすることもできますし、0 にすることもできます。 0 の場合は、
     エラーチェックを実行しますが、実際にシグナルは送信されません。これを使用
     して pid の有効性をチェックできます。

     プロセスが pid によって指定されたプロセスにシグナルを送信するパーミッショ
     ンを持つためには、受信するプロセスの実ユーザ ID または実効ユーザ ID が送
     信プロセスの対応するものと一致するか、またはユーザは該当する特権を持って
     いる (set-user-ID で与えられた特権、またはユーザがスーパユーザである) 必
     要があります。唯一の例外はシグナル SIGCONT で、これだけは現在のプロセスの
     子孫に必ず送信できます。

     pid が 0 より大きい場合:
             sig は ID が pid に等しいプロセスに送信されます。

     pid が 0 の場合:
             sig はグループ ID が送信側のプロセスグループ ID と等しく、それに
             ついてプロセスがパーミッションを持っているすべてのプロセスに送信
             されます。これは killpg(2) の変種です。

     pid が -1 の場合:
             ユーザにスーパユーザの特権がある場合、システムプロセス (P_SYSTEM
             フラグが設定されている)、ID が 1 のプロセス (通常は init(8) )、お
             よびシグナルを送信しているプロセスを除くすべてのプロセスにシグナ
             ルが送信されます。ユーザがスーパユーザでない場合、シグナルを送信
             しているプロセスを除く、ユーザと同じ uid のすべてのプロセスにシグ
             ナルが送信されます。いずれかのプロセスにシグナルを送信できた場
             合、エラーは返されません。

     System V との互換性を保つために、プロセス番号が -1 以外の負数の場合、プロ
     セス番号の絶対値に等しいプロセスグループ ID を持つすべてのプロセスにシグ
     ナルが送信されます。これは killpg(2) の変種です。


戻り値

     関数 kill() は、処理が成功すると値 0 を返します。そうでない場合、値 -1 が
     返され、グローバル変数 errno が設定されてエラーを示します。


エラー

     Kill() は次の場合に処理に失敗し、シグナルは送信されません。

     [EINVAL]           sig が有効なシグナル番号ではありません。



規格

     kill() 関数は ISO/IEC 9945-1:1990 (``POSIX.1'') に準拠しています。


歴史

     kill() 関数は Version 7 AT&T UNIX ではじめて登場しました。

FreeBSD 4.4                     April 19, 1994                     FreeBSD 4.4

ABELNET VPSサービス