もともと、このkill
コマンドはプロセスを強制終了することしかkill
できませんでしたが、後でシグナルを送信できるように拡張されました。
Unix(1979)のバージョン7以降、デフォルトでは、プロセスをシグナルとしてキャッチし、適切に処理するか無視する(SIGTERMシグナルを送信する)ことができますが、下からラグを引き出すためにも使用できますプロセス(aはキャッチできないため無視できないSIGKILLシグナルをkill -9
送信します)。
バックグラウンド
コンピューティング、特にUnixは、比phorに満ちています。
プロセスの主な比phor は、生まれ、生き、死ぬ生物の比phorです。
Unixでは、initを除くすべてのプロセスには親があり、他のプロセスを生成するプロセスには子があります。プロセスは(親が死んだ場合)孤立する可能性があり、死後にうろついている場合はゾンビになることさえあります。
したがって、kill
コマンドはこの比phorに適合します。
Unix考古学
Unixのバージョン4(導入されたバージョン、および)のマニュアルページからkill
、次のps
ことがわかります。
NAME
kill - do in an unwanted process
SYNOPSIS
kill processid ...
DESCRIPTION
Kills the specified processes.
The processid of each asynchronous process
started with `&' is reported by the shell.
Processid's can also be found by using ps (I).
The killed process must have
been started from the same typewriter
as the current user, unless
he is the superuser.
SEE ALSO
ps(I), sh(I)
このmanページの最後のセクションが特に気に入っています。
BUGS
Clearly people should only be allowed to kill
processes owned by them, and having the same typewriter
is neither necessary nor sufficient.
第5版が登場する頃には、kill
コマンドがすでにオーバーロードされていて、信号を送信できるようになっていました。
以下からのUnixプログラママニュアル、第5版(P70):
If a signal number preceded by "-" is given
as an argument, that signal is sent instead of
kill (see signal (II)).
ただし、シグナル15はまだ存在しないため、デフォルトではシグナル9を送信します(p150を参照)。
では、バージョン6kill
のmanページは、もはや言及していない同じタイプライターのバグを。
Unixのバージョン7でのみシグナル15が導入され(v7 のsignal(2)およびkill(1)のマニュアルページを参照)、kill
シグナル9を使用するのではなく、それに切り替えました。