kill または killpg サブルーチン
目的
プロセスまたはプロセスのグループにシグナルを送信します。
ライブラリー
標準 C ライブラリー (libc.a)
構文
#include <sys/types.h>
#include <signal.h>
説明
強制終了 サブルーチンは、 シグナル パラメーターで指定されたシグナルを、 処理 パラメーターで指定されたプロセスまたはプロセス・グループに送信します。
シグナルを別のプロセスに送信するには、送信プロセスの実ユーザー ID または実効ユーザー ID が受信プロセスの実ユーザー ID または実効ユーザー ID と一致している必要があり、呼び出しプロセスが root ユーザー権限を持っている必要があります。
プロセス ID が 0 および 1 のプロセスは特殊なプロセスであり、ここではそれぞれ proc0 および proc1と呼ばれることがあります。
プロセスは自分自身にシグナルを送信することができます。
BSD 互換性のために、以下のインターフェースが提供されています。
killpg(ProcessGroup, Signal)
int ProcessGroup; Signal;このインターフェースは、以下と同等です。
if (ProcessGroup < 0)
{
errno = ESRCH;
return (-1);
}
return (kill(-ProcessGroup, Signal));パラメーター
| 項目 | 説明 |
|---|---|
| プロセス | プロセスまたはプロセスのグループの ID を指定します。 処理 パラメーターが 0 より大きい場合、 シグナル パラメーターによって指定されたシグナルは、 処理 パラメーターによって識別されるプロセスに送信されます。 処理 パラメーターが 0 の場合、 シグナル パラメーターによって指定されたシグナルは、送信側のプロセス・グループ ID と一致するプロセス・グループ ID を持つすべてのプロセス ( proc0 および proc1を除く) に送信されます。 Processパラメータの値が-1以外の負の値であり、呼び出し元のプロセスがシグナルを送るプロセスのアクセス・チェックをパスした場合、Signalパラメータで指定されたシグナルが、proc0と proc11を除くすべてのプロセスに送られる。 呼び出しプロセスのユーザーIDがrootユーザー権限を持っている場合、proc0と proc11を除くすべてのプロセスがシグナルされる。 Processパラメータの値が-1以外の負の値である場合、Signalパラメータで指定された信号は、Processパラメータの絶対値に等しいプロセスグループIDを持つすべてのプロセスに送信される。 Processパラメータの値が-11の場合、Signalパラメータで指定されたシグナルは、そのプロセスがそのシグナルを送信する権限を持っているすべてのプロセスに送信される。 |
| SIGNAL | シグナルを指定します。 Signal パラメーターが NULL 値の場合、エラー検査は実行されますが、シグナルは送信されません。 このパラメーターは、 処理 パラメーターの妥当性を検査するために使用されます。 |
| ProcessGroup | プロセス・グループを指定します。 |
戻り値
正常終了すると、 強制終了 サブルーチンは値 0 を戻します。 そうでない場合は-1が返され、エラーを示すerrnoグローバル変数が設定される。
エラー・コード
以下の 1 つ以上が該当する場合、 強制終了 サブルーチンは失敗し、シグナルは送信されません。
| 項目 | 説明 |
|---|---|
| EINVAL | シグナル パラメーターが有効なシグナル番号ではありません。 |
| EINVAL | シグナル パラメーターは シグキル、 SIGSTOP (停止)、 _ 翻訳不要 _SIGTSTP、または SIGCONT (信号) シグナルを指定し、 処理 パラメーターは 1 (proc1) です。 |
| ESRCH | 処理 パラメーターで指定されたプロセスに対応するプロセスが見つかりません。 |
| EPERM | 実ユーザー ID または実効ユーザー ID が受信プロセスの実ユーザー ID または実効ユーザー ID と一致しないか、あるいは呼び出しプロセスに root ユーザー権限がありません。 |