Saltar al contenido

¿Cuál es la diferencia entre pkill y killall?

Esta es la respuesta más correcta que encomtrarás aportar, pero obsérvala pausadamente y valora si se adapta a tu proyecto.

Solución:

los pgrep y pkill Las utilidades se introdujeron en Solaris 7 de Sun y, como señaló g33klord, toman un patrón como argumento que se compara con los nombres de los procesos en ejecución. Tiempo pgrep simplemente imprime una lista de procesos coincidentes, pkill enviará la señal especificada (o SIGTERM por defecto) a los procesos. Las opciones comunes y la semántica entre pgrep y pkill resulta útil cuando desea tener cuidado y revisar primero los procesos de comparación de listas con pgrepluego proceda a matarlos con pkill. pgrep y pkill son proporcionados por el paquete procps, que también proporciona otros /proc utilidades del sistema de archivos, como ps, top, free, uptime entre otros.

los killall El comando lo proporciona el paquete pmisc y difiere de pkill en que, de forma predeterminada, coincide exactamente con el nombre del argumento (hasta los primeros 15 caracteres) al determinar los procesos a los que se enviarán las señales. los -e, --exact La opción se puede especificar para requerir también coincidencias exactas para nombres de más de 15 caracteres. Esto hace killall algo más seguro de usar en comparación con pkill. Si el argumento especificado contiene una barra inclinada (/), 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. killall también admite la coincidencia de expresiones regulares de nombres de procesos, a través de la -r, --regexp opción.

Hay otras diferencias también. los killall El comando, por ejemplo, tiene opciones para hacer coincidir los procesos por edad (-o, --older-than y -y, --younger-than), tiempo pkill se le puede decir que solo elimine procesos en una terminal específica (a través del -t opción). Claramente, entonces, los dos comandos tienen nichos específicos.

Tenga en cuenta que el killall el comando en sistemas descendientes de Unix System V (en particular, Solaris de Sun, AIX de IBM y HP-UX de HP) mata todos procesos eliminables por un usuario en particular, cerrando efectivamente el sistema si se ejecuta por root.

Las utilidades pmisc de Linux han sido portadas a BSD (y en extensión a Mac OS X), por lo tanto killall sigue la semántica de “matar procesos por nombre”.

pkill es el que vale la pena enseñar a las generaciones futuras, tanto por los filtros que mencionas como por el hecho de que se combina con el altamente reutilizable pgrep. Matan los procesos de la misma manera y ninguno mata recursivamente, aunque con pgreppuede seleccionar por sesión (por tty, piense en setsid) o grupo de procesos (piense en control de trabajo).

una diferencia es que killalltomar el nombre exacto del proceso como argumento mientras que pkill puede tomar nombre parcial o completo.

Puede consultar esta pregunta para conocer en profundidad sobre pkill

Calificaciones y reseñas

Si te gusta el asunto, puedes dejar una noticia acerca de qué te ha impresionado de este ensayo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *