kill - プロセスまたはジョブを終了させる、またはシグナルを送る

形式

  • kill -l [exit_status]
  • kill [-s signal_name] [
  • kill -K [pid...][ job-identifier...]
  • kill [-signal_name] [pid ...] [job-identifier ...]
  • kill [-signal_number] [pid ...] [job-identifier ...]

tcsh シェル:

  • kill [-signal] %job|pid ...
  • kill-K %job|pid...
  • kill-l

説明

kill は、プロセスにシグナルを送ることによって、そのプロセスを終了させます。 デフォルトのシグナルは SIGTERM です。

kill は、組み込みシェル・コマンドです。

tcsh シェルでは、kill [-signal] %job|pid … は、指定された signal (何も指定されていない場合 には、TERM (終了) シグナル) を指定されたジョブまたはプロセスに送ります。job は番号、ストリング、''、%、+ または - で表すことができます。シグナルは番号か名前で指定します。 signal_name は、大文字で入力してください。例えば、SIGTERM シグナルを送りたい場合は、kill -SIGTERM pid ではなく kill -TERM pid を入力します。

tcsh kill コマンドを使用するときには、signal_name の最初の 3 文字 (SIG) を使用しないでください。

デフォルトの job はありま せん。 kill だけを指定してもシグナルは現行ジョブに送られません。 送るシグナルが TERM または HUP (ハングアップ) である場合、ジョブ またはプロセスには CONT (継続) シグナルも送られます。

kill -l はシグナル名をリストします。tcsh: C シェルの起動を参照してください。

オプションで説明されている signal_numbers およ び signal_names も、tcsh kill コマンドで使用さ れます。

オプション

-K
前の KILL シグナルの結果として終了しなかったプロセスまたはジョブの終了を 強制するために superkill シグナルを送信します。 プロセスは、再試行不能の異常終了で終了します。 superkill シグナルを送信する前に、通常の KILL シグナルを最低 3 秒間送信するようにしてください。 superkill は、プロセス・グループ (0 または負の数値の pid を使用して) または すべてのプロセス (-1 の pid を使用して) に対して送信することはできません。
-l
サポートされているすべてのシグナルの名前を表示します。exit_status が指定され、それが終了したプロセスの終了コードである場合には 、kill はそのプロセスの終了シグナルを表示します。
-s signal_name
SIGTERM シグナルの代わりに、シグナル signal_name をプロセスに送ります。kill コマンドを使用するときは 、signal_name の最初の 3 文字 (SIG) を使用しないで ください。 signal_name は、大文字で入力してください。例えば 、SIGABRT シグナルを送りたい場合は、以下のように入力します。
kill -s ABRT pid
-signal_name
(廃止。) -s signal_name と同じです。
-signal_number
(廃止。) SIGTERM の代わりに、プロセス へ送信されるシグナルを表す正の整数です。

signal_number は以下のシグナル名を表します。

0
  SIGNULL
1
 SIGHUP
2
 SIGINT
3
  SIGQUIT
4
  SIGILL
5
  SIGPOLL
6
  SIGABRT
7
  SIGSTOP
8
  SIGFPE
9
  SIGKILL
10
  SIGBUS
11
  SIGSEGV
12
  SIGSYS
13
  SIGPIPE
14
  SIGALRM
15
 SIGTERM
16
 SIGUSR1
17
 SIGUSR2
18
  SIGABND
19
  SIGCONT
20
  SIGCHLD
21
  SIGTTIN
22
  SIGTTOU
23
  SIGIO
24
  SIGQUIT
25
  SIGTSTP
26
  SIGTRAP
27
  SIGIOERR
28
  SIGWINCH
29
  SIGXCPU
30
  SIGXFSZ
31
  SIGVTALRM
32
  SIGPROF
37
  SIGTRACE
38
  SIGDCE
39
  SIGDUMP
SIGQUIT と SIGABRT に それぞれ関連する signal_numbers (36) は 、z/OS カーネルによって使用される SIGQUIT と SIGABRT の 値とは異なりますが、他の UNIX プラットフォームとの互換性のためにサポートされています。(kill コマンドは、SIGQUIT または SIGABRT をプロセスに送信します。) この注は、tcsh シェルでの kill にも当てはまります。

オペランド

job-identifier
プロセスが & で開始されたときにシェルによって報告されるジョブ ID を指定します。これは、プロセスを識別する 1 つの方法です。これは 、jobs コマンドによっても報告されます。kill コマンドでジョブ ID を使用する ときには、そのジョブ ID の前にパーセント (%) 記号を付ける必要があります。例えば、ジョブ ID が 2 の場合は、kill コマンドを以下のように入力します。
kill -s KILL %2
pid
プロセスが & で開始されたときにシェルによって報告されるプロセス ID を指定します。これは、ps コマンドを使用して知ることもでき ます。pid 引数は、8 進数、10 進数、または 16 進数で指定することができます。プロセス ID は 10 進数で報告されます。kill は、負の値の pid を サポートします。
pid が -1 以外の負の値である場合は、プロセス・グループ ID が pid の絶対値に等しい すべてのプロセスにシグナルが送られます。負の値の pid は、以下のように指定します。
kill –KILL –– –nn
ここで、nn はプロセス・グループ ID で、2 桁から 7 桁の範囲の 数字 (nn から nnnnnnn) です。
kill –s KILL –– –9812753
この形式では、プロセス・グループ ID を指定するため に、–nn の前に –– を入れる必要があります。

pid0 の場合は、起動側のプロセス・グループ内のすべてのプロセスにシグナルが送られます。

強制終了させるプロセスは、現行ユーザーに属していなければなりません。ただし、スーパーユーザーはすべてのプロセスを強制終了させることができます。

ローカライズ

kill は、以下のローカライズ環境変数を使用します。
  • LANG
  • LC_ALL
  • LC_CTYPE
  • LC_MESSAGES
  • NLSPATH

詳しくは、ローカライズを参照してください。

使用上の注意

  1. z/OS® UNIX のシグナル通知の制約事項については、「z/OS UNIX System Services プログラミング: アセンブラー呼び出し可能サービス 解説書」の『環境制約事項』のセクションに説明があります。

終了値

0
正常終了。
1
以下のいずれかの理由による失敗:
  • ジョブまたはプロセスは存在しなかった。
  • コマンド行構文にエラーがあった。
2
以下のいずれかの理由による失敗:
  • 2 つのジョブまたはプロセスは存在しなかった。
  • コマンド行の引数が正しくない。
  • シグナルが正しくない。
>2
kill できなかったプロセスの番号を知らせます。

メッセージ

以下の エラー・メッセージが出される可能性があります。
job-identifier is not a job
正しくない ID を指定しました。
signal_name is not a valid signal
kill に対して整数でないシグナルを指定したか、または有効なシグナル番号の範囲外のシグナルを指定しました。

移植性

POSIX.2 , X/Open 移植性ガイド.

関連情報

jobspsshtcsh