El kill
El comando es un envoltorio muy simple para el kill
llamada al sistema , que solo conoce los ID de proceso (PID). pkill
y killall
también son envoltorios para el kill
llamada al sistema , (en realidad, a la biblioteca libc que invoca directamente la llamada del sistema), pero puede determinar los PID por usted, en función de elementos como el nombre del proceso, el propietario del proceso, la identificación de la sesión, etc.
Cómo pkill
y killall
el trabajo se puede ver usando ltrace
o strace
en ellos. En Linux, ambos leen el /proc
sistema de archivos, y para cada pid (directorio) encontrado, recorre la ruta de una manera de identificar un proceso por su nombre u otros atributos. Cómo se hace esto es técnicamente hablando, kernel y sistema específico. En general, leen desde /proc/<PID>/stat
que contiene el nombre del comando como segundo campo. Para pkill -f
y pgrep
examinar el /cmdline
entrada para cada entrada de proceso de PID.
pkill
y pgrep
utiliza el readproc
llamada al sistema, mientras que killall
no es. No podría decir si hay una diferencia de rendimiento:tendrás que comparar eso por tu cuenta.
kill y killall son herramientas que proporcionan una forma de matar un proceso. El primero por su PID, el segundo por su nombre. pgrep (lista) y pkill (matar por defecto) son herramientas que proporcionan una forma de enviar un mensaje a un proceso por su nombre u otros atributos ver:http://linux.die. net/man/1/pkillPara más información sobre señales:http://linux.die.net/man/7/signal