Las utilidades pgrepy pkillse introdujeron en Sun's Solaris 7 y, como señaló g33klord , toman un patrón como argumento que coincide con los nombres de los procesos en ejecución. Si bien pgrepsimplemente imprime una lista de procesos coincidentes, pkillenviará la señal especificada (o SIGTERMpor defecto) a los procesos. Las opciones comunes y la semántica entre pgrepy pkillson útiles cuando desea tener cuidado y primero revise los procesos de comparación de listas con pgrep, luego proceda a eliminarlos con pkill. pgrepy pkillse proporcionan por el los procps paquete, que también proporciona otras /procutilidades del sistema de archivos, tales como ps, top, free, uptimeentre otros.
El killallcomando es proporcionado por el paquete psmisc , y difiere de pkilleso, de manera predeterminada, coincide exactamente con el nombre del argumento (hasta los primeros 15 caracteres) al determinar las señales de proceso a las que se enviarán. La opción -e, --exactse puede especificar para que también requiera coincidencias exactas para nombres de más de 15 caracteres. Esto hace que sea killallalgo más seguro de usar en comparación con pkill. Si el argumento especificado contiene caracteres de barra diagonal ( /), el argumento se interpreta como un nombre de archivo y los procesos que ejecutan ese archivo en particular se seleccionarán como destinatarios de la señal. killalltambién soporta expresiones regulares de nombres de proceso, a través de la -r, --regexpopción.
Hay otras diferencias también. El killallcomando, por ejemplo, tiene opciones para unir procesos por edad ( -o, --older-thany -y, --younger-than), mientras pkillque se le puede decir que solo mate procesos en un terminal específico (a través de la -topción). Claramente, entonces, los dos comandos tienen nichos específicos.
Tenga en cuenta que el killallcomando en sistemas descendientes de Unix System V (especialmente Sun's Solaris , IBM's AIX y HP's HP-UX ) mata todos los procesos que un usuario en particular puede matar , cerrando efectivamente el sistema si se ejecuta desde la raíz.
Las utilidades psmisc de Linux se han portado a BSD (y en la extensión Mac OS X ), por lo tanto, killallsigue la semántica "matar procesos por nombre".