Einfach nur nach der Verwendung kill <some_pid>
auf Unix - Systemen seit vielen Jahren habe ich gelernt , pkill
von einem jüngeren Linux-versierten Mitarbeitern Kollegen 1 .
Ich nahm bald den Linux-Weg, pgrep
-ing und pkill
-ing durch viele Tage und Nächte durch Verlangsamungen und Rennbedingungen. Das war alles schön und gut.
Aber jetzt sehe ich doch nichts killall
. Anleitungen scheinen nur zu erwähnen killall
, und ich bin mir nicht sicher, ob dies eine Art parallele Entwicklung ist oder ob killall
es sich um einen Nachfolger pkill
oder etwas anderes handelt.
Es scheint gezielter zu funktionieren pkill
, aber ich bin mir sicher, dass mir etwas fehlt.
Kann eine Ubuntu / Debian-versierte 2- Person erklären, wann (oder warum) killall
sie verwendet werden sollte, insbesondere, wenn sie bevorzugt verwendet werden sollte pkill
(wenn dies pkill
oft einfacher erscheint, weil ich mit der Namensübereinstimmung, zumindest in der Standardeinstellung, umständlicher sein kann)?
Wenn killall
ich davon spreche, denke ich nicht an den Befehl, der auf einigen Unix-Systemen (Solaris, AIX,?) Alle Benutzerprozesse beenden würde. Hier ist eine Beschreibung dieser Version aus einer Manpage für IBMs AIX :
Der Befehl killall bricht alle Prozesse ab, die Sie gestartet haben, mit Ausnahme derjenigen, die den killall-Prozess erzeugen. Mit diesem Befehl können Sie bequem alle Prozesse abbrechen, die von der von Ihnen gesteuerten Shell erstellt wurden. Wenn der Befehl killall von einem Root-Benutzer gestartet wird, werden alle abbrechbaren Prozesse mit Ausnahme der Prozesse, die ihn gestartet haben, abgebrochen. Wenn mehrere Signale angegeben sind, ist nur das letzte wirksam.
1 "Kollege" ist ein kostenloses Upgrade von "Mitarbeiter", könnte also auch.
2 Ursprünglich dachte ich, dies sei eine Linux- oder Debian-Sache, aber einige Quellen sagen, dass Linux killall
von Unix mit BSD-Geschmack abgeleitet ist.
quelle
killall
(altes?) Solaris-System, aber es hat sich anders verhalten. Es hat alles getötet.killall is safer for users to blindly copy and paste
, außer wenn Sie auf einer Maschine sitzen, auf der killall wirklich alle tötet. Es ist bedauerlich, dass die beiden verschiedenen Dienstprogramme denselben Namen haben.Bitte seien Sie vorsichtig mit "killall". Bei einigen Systemen (ich vergesse welche) bricht killall alle Prozesse ab. Argumente werden stillschweigend ignoriert und Ihr System wird vollständig angehalten.
quelle
kill -9 -1
könnte Ihr System töten, undkillall -9 -1
könnte auch. Aber nicht nurkillall [program]
Wenn Sie / etc / bash_completion aktivieren, vervollständigt after
killall <part_of_process_name>
und hit tab - auto den Prozessnamen aus der Liste der ausgeführten Prozessequelle
pkill plug<tab>
töte ich das Flash-Plugin für Firefox, wenn ich weiß, dass ich für eine Weile nichts verwenden möchte, aber immer noch aktiv Firefox verwenden möchte. Dies ist eine Funktion der Shell, kein Unterschied zwischen killall und pgrep / pkill.Wenn Sie sich die Optionen beider Programme ansehen, werden Sie feststellen, dass beide dasselbe tun, aber auf unterschiedliche Weise.
pkill führt einen Abgleich für verschiedene Attribute eines Prozesses durch (CMD, PID, PPID, UID ...) und sendet das angegebene Signal an jeden passenden Prozess. (Bei CMD wird ein regulärer Ausdruck verwendet, bei anderen ein String.) pkill ist nicht interaktiv, aber besser für Batch-Programme.
killall führt den Abgleich für den Prozessnamen (comm) oder den Benutzer (user) durch, nicht für die gesamte Befehlszeichenfolge. Das Argument wird als einfache Zeichenfolge verwendet und muss mit dem gesamten 'comm'-Wert übereinstimmen (es gibt auch die Option --regexp, um dies zu ändern). killall hat --interactive und --younger-than Optionen, die pkill nicht hat.
Es gibt auch ein killall5 aus SysV-Tagen, das auf andere UNIX-Varianten portiert wurde (angeblich unter dem Ubuntu-Paket 'sysutils'). Dies verhält sich anders als in der alten Mode. Dies wurde häufig intern für die Init-Skripte verwendet, um herunterzufahren oder in den Einzelbenutzermodus zu wechseln.
quelle
pkill
nochkillall
sollte in Skripten verwendet wird, nur interaktiv und mit Vorsicht zu genießen .