Ich kenne mich mit kill
Befehlen aus und meistens verwenden wir kill -9 nur, um einen Prozess gewaltsam abzubrechen. Es gibt viele andere Signale, die verwendet werden können kill
. Aber ich frage mich, was die Anwendungsfälle von pkill
und sind killall
, wenn es bereits einen Kill-Befehl gibt.
Haben pkill
und killall
die Verwendung kill
Befehl bei der Umsetzung? Ich meine, sie sind nur Wrapper kill
oder sie haben ihre eigene Implementierung?
Ich möchte auch wissen, wie pgrep
Befehl die Prozess-ID vom Prozessnamen abruft.
Verwenden alle diese Befehle dieselben zugrunde liegenden Systemaufrufe? Gibt es aus Sicht der Leistung einen Unterschied, welcher ist schneller?
linux
bash
shell-script
kill
Ijaz Ahmad Khan
quelle
quelle
kill -9
standardmäßig verwenden? -15 (bitte aufhören) und -1 (Modem hat aufgelegt, bitte SAUBER selbst geschlossen) sind viel höflicher. Zweitens. Vorsicht bei der Verwendung von killall auf Nicht-Linux-Boxen. Es könnte sich anders verhalten. (ZB unter Solaris tötet es alle. NICHT GEFILTERT nach Prozessnamen).Antworten:
Der
kill
Befehl ist ein sehr einfacher Wrapper für denkill
Systemaufruf , der nur die Prozess-IDs (PIDs) kennt.pkill
undkillall
sind auch Wrapper für denkill
Systemaufruf (eigentlich für die libc-Bibliothek, die den Systemaufruf direkt aufruft), können aber die PIDs für Sie anhand von Dingen wie Prozessname, Prozessbesitzer, Sitzungs-ID usw. bestimmen.Wie
pkill
undkillall
Arbeit kann mitltrace
oderstrace
an ihnen gesehen werden. Unter Linux lesen beide das/proc
Dateisystem durch und durchlaufen für jede gefundene pid (Verzeichnis) den Pfad, um einen Prozess anhand seines Namens oder anderer Attribute zu identifizieren. Wie dies gemacht wird, ist technisch gesehen kernel- und systemspezifisch. In der Regel lesen sie aus, aus/proc/<PID>/stat
welchem Befehlsnamen das 2. Feld besteht. Fürpkill -f
undpgrep
untersuchen den/cmdline
Eintrag für jeden proc Eintrag des PID.pkill
undpgrep
verwenden Sie denreadproc
Systemaufruf, währendkillall
nicht. Ich kann nicht sagen, ob es einen Leistungsunterschied gibt: Sie müssen das selbst messen.quelle
kill und killall sind Werkzeuge, mit denen ein Prozess abgebrochen werden kann. Der erste nach seiner PID, der zweite nach seinem Namen. pgrep (Liste) und pkill (Standardeinstellung kill) sind Tools, mit denen Sie Nachrichten nach Namen oder anderen Attributen an einen Prozess senden können. Weitere Informationen finden Sie unter: http://linux.die.net/man/1/pkill Signale: http://linux.die.net/man/7/signal
quelle
killall
, dass ein Prozess mit seinem Namen beendet wird? und es verwendet pgrep für diesen Zweck? undkillall
tötet auch alle untergeordneten Prozesse,? Welches Signalkillall
wird standardmäßig verwendet?killall
töten alle Prozesse , die Sie das Recht zu töten, so dass , wenn Sie root, sind Sie effektiv den Server neu zu starten.killall chromium
tötet den Chromprozess ,pgrep chromium
gibt Ihnen die PID-Liste,pkill chromium
tötet Chrom. killall wird standardmäßig SIGTERM - Signal (als pkill) senden