Les utilitaires pgrep
et pkill
ont é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 pgrep
n’imprime que la liste des processus correspondants, pkill
le signal spécifié (ou SIGTERM
par défaut) sera envoyé aux processus. Les options et la sémantique communes entre pgrep
et pkill
sont 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
. pgrep
et pkill
sont fournis par le le procps package, qui fournit également d' autres /proc
utilitaires du système de fichiers, tels que ps
, top
, free
, uptime
entre autres.
La killall
commande est fournie par le paquetage psmisc et se distingue du fait pkill
que, 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
, --exact
option peut être spécifiée pour exiger également des correspondances exactes pour les noms plus de 15 caractères. Cela rend l' killall
utilisation 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. killall
prend également en charge correspondance d'expression régulière des noms de processus, via -r
, --regexp
option.
Il y a aussi d'autres différences. La killall
commande, par exemple, a des options pour faire correspondre les processus par âge ( -o
, --older-than
et -y
, --younger-than
), alors qu'il pkill
est possible de ne tuer que les processus sur un terminal spécifique (via l' -t
option). Clairement, les deux commandes ont des niches spécifiques.
Notez que la killall
commande 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ù killall
la sémantique "tuer les processus par leur nom".