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