Solución:
los kill
El comando es un contenedor 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 al sistema), pero puede determinar los PID por usted, en función de cosas 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 para identificar un proceso por su nombre u otros atributos. Cómo se hace esto es técnicamente hablando, específico del kernel y del sistema. En general, leen de /proc/<PID>/stat
que contiene el nombre del comando como segundo campo. Para pkill -f
y pgrep
examina el /cmdline
entrada para la entrada de proceso de cada PID.
pkill
y pgrep
utilizar el readproc
llamada al sistema, mientras que killall
no. No podría decir si hay una diferencia de rendimiento: tendrá que comparar eso por su 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 de forma predeterminada) son herramientas que proporcionan una forma de enviar mensajes a un proceso por su nombre u otros atributos, consulte: http://linux.die.net/man/1/pkill Para obtener más información sobre señales: http://linux.die.net/man/7/signal