.\" Copyright (c) 1980, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)kill.2 8.3 (Berkeley) 4/19/94 .\" %FreeBSD: src/lib/libc/sys/kill.2,v 1.22 2003/10/24 21:20:26 kensmith Exp % .\" .\" $FreeBSD$ .Dd April 19, 1994 .Dt KILL 2 .Os .Sh 名称 .Nm kill .Nd プロセスにシグナルを送信する .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In signal.h .Ft int .Fn kill "pid_t pid" "int sig" .Sh 解説 .Fn kill システムコールは、 .Fa sig によって指定されたシグナルをプロセスまたはプロセスのグループである .Fa pid に送信します。 .Fa sig 引数は、 .Xr sigaction 2 で規定されたシグナルの 1 つにすることもできますし、0 にすることもできます。 0 の場合は、エラーチェックを実行しますが、実際にシグナルは送信されません。 これを使用して .Fa pid の有効性をチェックできます。 .Pp プロセスが .Fa pid によって指定されたプロセスにシグナルを送信するパーミッションを持つためには、 受信するプロセスの実ユーザ ID または実効ユーザ ID が 送信プロセスの対応するものと一致するか、 またはユーザは該当する特権を持っている (ユーザ ID 設定で与えられた特権、 またはユーザがスーパユーザである) 必要があります。 唯一の例外はシグナル SIGCONT で、これだけは呼び出し側と同一のセッション ID を 持っているプロセスに、必ず送信できます。 .Bl -tag -width Ds .\".It \&If Fa pid No \&is greater than zero : .It Fa pid No が 0 より大きい場合 : .Fa sig シグナルは ID が .Fa pid に等しいプロセスに送信されます。 .\".It \&If Fa pid No \&is zero : .It Fa pid No が 0 の場合 : .Fa sig シグナルはグループ ID が送信側のプロセスグループ ID と等しく、それについて プロセスがパーミッションを持っているすべてのプロセスに送信されます。 これは .Xr killpg 2 の変種です。 .\".It \&If Fa pid No \&is -1 : .It Fa pid No が -1 の場合 : ユーザにスーパユーザの特権がある場合、システムプロセス .Dv ( P_SYSTEM フラグが設定されている)、ID が 1 のプロセス (通常は .Xr init 8 ) 、 およびシグナルを送信しているプロセスを 除くすべてのプロセスにシグナルが送信されます。 ユーザがスーパユーザでない場合、シグナルを送信しているプロセスを除く、 ユーザと同じ uid のすべてのプロセスにシグナルが送信されます。 いずれかのプロセスにシグナルを送信できた場合、エラーは返されません。 .El .Pp System V との互換性を保つために、プロセス番号が -1 以外の負数の場合、 プロセス番号の絶対値に等しいプロセスグループ ID を持つ すべてのプロセスにシグナルが送信されます。 これは .Xr killpg 2 の変種です。 .Sh 戻り値 .Rv -std kill .Sh エラー .Fn kill システムコールは次の場合に処理に失敗し、シグナルは送信されません: .Bl -tag -width Er .It Bq Er EINVAL .Fa sig 引数が有効なシグナル番号ではありません。 .It Bq Er ESRCH .Fa pid で指定されたプロセスに対応するプロセスが検出できません。 .It Bq Er ESRCH プロセス ID は 0 として与えられたものの、 送信プロセスにプロセスグループがありません。 .It Bq Er EPERM 送信プロセスはスーパユーザではなく、その実効ユーザ ID が受信プロセスの 実効ユーザ ID と一致しません。 プロセスグループにシグナルを送信するとき、グループのメンバの いずれかにシグナルを送信することができない場合、このエラーが返されます。 .El .Sh 関連項目 .Xr getpgrp 2 , .Xr getpid 2 , .Xr killpg 2 , .Xr sigaction 2 , .Xr raise 3 , .Xr init 8 .Sh 規格 .Fn kill システムコールは .St -p1003.1-90 に適合しています。 .Sh 歴史 .Fn kill 関数は .At v7 ではじめて登場しました。