Die Dienstprogramme pgrepund pkillwurden in Solaris 7 von Sun eingeführt und verwenden, wie g33klord feststellte , ein Muster als Argument, das mit den Namen der ausgeführten Prozesse abgeglichen wird. Während pgreplediglich eine Liste übereinstimmender Prozesse gedruckt wird, pkillwird das angegebene Signal (oder SIGTERMstandardmäßig) an die Prozesse gesendet . Die gemeinsamen Optionen und Semantiken zwischen pgrepund sind pkillnützlich, wenn Sie vorsichtig sein und zuerst die Prozesse für den Listenabgleich mit überprüfen pgrepund dann mit beenden möchten pkill. pgrepund pkillwerden durch die die zur Verfügung gestellten procps Paket, das auch andere bietet /procDateisystemdienstprogramme, wie zum Beispiel ps, top, free, uptimeunter anderem.
Der killallBefehl wird vom psmisc- Paket bereitgestellt und unterscheidet sich pkilldarin, dass er standardmäßig genau mit dem Argumentnamen übereinstimmt (bis zu den ersten 15 Zeichen), wenn festgelegt wird, an welche Prozesse Signale gesendet werden. Die -e, --exactOption kann auch angegeben werden , um für Namen exakte Übereinstimmungen benötigen länger als 15 Zeichen. Dies macht die Verwendung killalletwas sicherer als pkill. Wenn das angegebene Argument Schrägstriche ( /) enthält , wird das Argument als Dateiname interpretiert und Prozesse, die diese bestimmte Datei ausführen, werden als Signalempfänger ausgewählt. killallunterstützt auch reguläre Ausdrücke von Prozessnamen, über die -r, --regexpOption.
Es gibt auch andere Unterschiede. Der killallBefehl verfügt beispielsweise über Optionen zum Abgleichen von Prozessen nach Alter ( -o, --older-thanund -y, --younger-than), während festgelegt werden pkillkann, dass nur Prozesse auf einem bestimmten Terminal abgebrochen werden sollen (über die -tOption). Es ist klar, dass die beiden Befehle bestimmte Nischen haben.
Beachten Sie, dass der killallBefehl auf Systemen, die von Unix System V abstammen (insbesondere Solaris von Sun , AIX von IBM und HP-UX von HP ), alle Prozesse beendet, die von einem bestimmten Benutzer beendet werden können, und das System effektiv herunterfährt, wenn es von root ausgeführt wird.
Die Linux-Dienstprogramme psmisc wurden auf BSD (und in der Erweiterung Mac OS X ) portiert , daher killallfolgt die Semantik "Kill-Prozesse nach Namen".