.\" 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.10.2.3 2001/03/06 16:46:06 ru Exp % .\" .Dd April 19, 1994 .Dt KILL 2 .Os BSD 4 .Sh 名称 .Nm kill .Nd プロセスにシグナルを送信する .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Fd #include .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 が 送信プロセスの対応するものと一致するか、 またはユーザは該当する特権を持っている (set-user-ID で与えられた特権、 またはユーザがスーパユーザである) 必要があります。 唯一の例外はシグナル SIGCONT で、これだけは現在のプロセスの子孫に 必ず送信できます。 .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 戻り値 正常に完了すると値 0 が返されます。そうでない場合は -1 が返され、 エラーを示すように .Va errno が設定されます。 .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 init 8 .Sh 規格 .Fn kill 関数は .St -p1003.1-90 に準拠しています。 .Sh 歴史 .Fn kill 関数は .At v7 ではじめて登場しました。