Warum wurde beschlossen, den kill
Befehl "kill" zu nennen ?
Ich meine, ja, dieses Dienstprogramm wird oft verwendet, um Prozesse zu beenden, aber es kann tatsächlich verwendet werden, um ein beliebiges Signal zu senden.
Ist es nicht etwas verwirrend? Vielleicht gibt es einige historische Gründe.
Alles, was ich aus man kill
diesem Befehl weiß , ist in Version 3 von AT & T UNIX erschienen.
terminology
history
unix
shabunc
quelle
quelle
cd
früher so genannt wurdechdir
, was definitiv Wahnsinn ist! 5 Zeichen für eine solche gemeinsame Operation? Ich kenne Leute, die auchls
dazul
passen ;-)assassinate
jedes Mal, wenn sie es verwendeten, etwasAntworten:
Ursprünglich konnte der
kill
Befehl nur einen Prozess beenden, wurde aber späterkill
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 wurdeps
) finden wir:Besonders gut gefällt mir der letzte Abschnitt dieser Manpage:
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):
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.quelle
Das ist Unix.
kill
kann einen Prozess nicht beenden.mv
kann Dateien umbenennen und nicht nur von einem Ort an einen anderen verschieben.touch
kann eine Datei erstellen und nicht nur deren letzten Änderungszeitpunkt ändern.od
bedeutet Octal Dump, kann aber noch viele andere Arten von Dumps ausführen.yes
kann keine ausgeben.Exotischer:
grep
wird nach demed
Befehl benannt, der dieselbe Operation ausführt:g/re/p
awk
ist nach seinen Autoren benannt: Aho, Weinberger und Kernighan.yacc
bedeutet noch ein Compiler Compiler. Beachten Sie, dass diesbison
der GNU-Yacc ist.quelle
Unix Version 7 tötet Handbuchseitenstatus :
und
Es gäbe keinen Grund, diesen Befehl nicht kill zu nennen, was mit Sicherheit die beste verfügbare Metapher ist.
quelle