Les utilitaires pgrepet pkillont été introduits dans Solaris 7 de Sun et, comme l' a noté g33klord , ils prennent un motif en tant qu'argument qui correspond aux noms des processus en cours d'exécution. Alors qu’il pgrepn’imprime que la liste des processus correspondants, pkillle signal spécifié (ou SIGTERMpar défaut) sera envoyé aux processus. Les options et la sémantique communes entre pgrepet pkillsont pratiques lorsque vous voulez être prudent et réviser d’abord les processus de correspondance avec la liste pgrep, puis procéder à leur suppression pkill. pgrepet pkillsont fournis par le le procps package, qui fournit également d' autres /procutilitaires du système de fichiers, tels que ps, top, free, uptimeentre autres.
La killallcommande est fournie par le paquetage psmisc et se distingue du fait pkillque, par défaut, elle correspond exactement au nom de l'argument (jusqu'aux 15 premiers caractères) lors de la détermination du processus auquel les signaux seront envoyés. La -e, --exactoption peut être spécifiée pour exiger également des correspondances exactes pour les noms plus de 15 caractères. Cela rend l' killallutilisation plus sûre comparée à pkill. Si l'argument spécifié contient des caractères slash ( /), l'argument est interprété comme un nom de fichier et les processus exécutant ce fichier sont sélectionnés comme destinataires du signal. killallprend également en charge correspondance d'expression régulière des noms de processus, via -r, --regexpoption.
Il y a aussi d'autres différences. La killallcommande, par exemple, a des options pour faire correspondre les processus par âge ( -o, --older-thanet -y, --younger-than), alors qu'il pkillest possible de ne tuer que les processus sur un terminal spécifique (via l' -toption). Clairement, les deux commandes ont des niches spécifiques.
Notez que la killallcommande sur les systèmes issus de Unix System V (notamment Sun Solaris , IBM AIX et HP-UX HP ) supprime tous les processus susceptibles d'être tués par un utilisateur donné et arrête efficacement le système si elle est exécutée par root.
Les utilitaires Linux psmisc ont été portés sur BSD (et dans l’extension Mac OS X ), d’où killallla sémantique "tuer les processus par leur nom".