Ursprünglich konnte der kill
Befehl nur einen Prozess beenden, wurde aber später kill
erweitert, damit Sie jedes Signal senden können.
Seit Version 7 von Unix (1979) wird der Prozess standardmäßig so signalisiert, dass er abgefangen und entweder ordnungsgemäß gehandhabt oder ignoriert werden kann (durch Senden eines SIGTERM- Signals). Er kann jedoch auch zum Herausziehen des Teppichs von unten verwendet werden ein Prozess (a kill -9
sendet ein SIGKILL- Signal, das nicht abgefangen und somit nicht ignoriert werden kann).
Hintergrund
Computing, und insbesondere Unix, steckt voller Metaphern.
Die Hauptmetapher für Prozesse ist die eines Lebewesens, das geboren wird, lebt und stirbt.
In Unix alle Prozesse außer init haben Eltern , und jedes Verfahren, das laicht anderen Verfahren hat Kinder . Prozesse können verwaist werden (wenn ihre Eltern sterben) und sogar zu Zombies werden , wenn sie nach ihrem Tod herumhängen.
Somit kill
passt der Befehl zu dieser Metapher.
Unix-Archäologie
Auf der Handbuchseite ab Version 4 von Unix (die Version kill
, mit der eingeführt wurde ps
) finden wir:
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)
Besonders gut gefällt mir der letzte Abschnitt dieser Manpage:
BUGS
Clearly people should only be allowed to kill
processes owned by them, and having the same typewriter
is neither necessary nor sufficient.
Bis zur fünften Ausgabe war der kill
Befehl bereits überladen, um das Senden von Signalen zu ermöglichen.
Aus dem Unix-Programmierhandbuch, 5. Ausgabe (S. 70):
If a signal number preceded by "-" is given
as an argument, that signal is sent instead of
kill (see signal (II)).
Standardmäßig wurde jedoch ein Signal 9 gesendet, da das Signal 15 noch nicht vorhanden war (siehe p150).
Ab Version 6 wurde auf der kill
Manpage nicht mehr derselbe Schreibmaschinenfehler erwähnt .
Erst mit Version 7 von Unix wurde das Signal 15 eingeführt (siehe die Manpages signal (2) und kill (1) für v7) und auf dieses kill
umgestellt, anstatt das Signal 9 zu verwenden.