GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was ist der Unterschied zwischen kill, pkill und killall?

Der kill Befehl ist ein sehr einfacher Wrapper für kill Systemaufruf , die nur Prozess-IDs (PIDs) kennt. pkill und killall sind auch Wrapper für kill Systemaufruf , (eigentlich an die libc-Bibliothek, die den Systemaufruf direkt aufruft), kann aber die PIDs für Sie ermitteln, basierend auf Dingen wie Prozessname, Eigentümer des Prozesses, Sitzungs-ID usw.

Wie pkill und killall Arbeiten können mit ltrace eingesehen werden oder strace auf sie. Unter Linux lesen beide den /proc durch Dateisystem und durchläuft für jede gefundene PID (Verzeichnis) den Pfad, um einen Prozess anhand seines Namens oder anderer Attribute zu identifizieren. Wie das gemacht wird, ist technisch gesehen Kernel- und System-spezifisch. Im Allgemeinen lesen sie ab /proc/<PID>/stat die als 2. Feld den Befehlsnamen enthält. Für pkill -f und pgrep Untersuchen Sie /cmdline Eintrag für den proc-Eintrag jeder PID.

pkill und pgrep Verwenden Sie den readproc Systemaufruf, während killall nicht. Ich kann nicht sagen, ob es einen Leistungsunterschied gibt:Sie müssen das selbst messen.


kill und killall sind Werkzeuge, die eine Möglichkeit bieten, einen Prozess zu beenden. Das erste anhand seiner PID, das zweite anhand seines Namens. pgrep (list) und pkill (standardmäßig kill) sind Werkzeuge, die eine Möglichkeit bieten, Nachrichten an einen Prozess anhand seines Namens oder anderer Attribute zu senden, siehe:http://linux.die. net/man/1/pkillWeitere Informationen zu Signalen:http://linux.die.net/man/7/signal


Linux
  1. Was ist der Unterschied zwischen strtok_r und strtok_s in C?

  2. Was ist der Unterschied zwischen fsck und e2fsck?

  3. Was ist der Unterschied zwischen adduser und useradd?

  4. Was ist der Unterschied zwischen nicht präemptivem, präemptivem und selektivem präemptivem Kernel?

  5. Was ist der Unterschied zwischen `su -` und `su --login`?

Was ist der Unterschied zwischen Linux und Unix?

Was ist der Unterschied zwischen Login- und Non-Login-Shell

Was ist der Unterschied zwischen apt und dem Befehl apt-get?

Was ist ein Hypervisor? Was ist der Unterschied zwischen Typ 1 und 2?

Was ist der Unterschied zwischen Curl und Wget?

Was ist der Unterschied zwischen Kill- und Killall-Befehlen?