¿Cómo puedo eliminar un proceso por nombre en lugar de PID en Linux? [duplicar]
A veces, cuando intento iniciar Firefox, dice "ya se está ejecutando un proceso de Firefox". Entonces tengo que hacer esto:
jeremy@jeremy-desktop:~$ ps aux | grep firefox
jeremy 7451 25.0 27.4 170536 65680 ? Sl 22:39 1:18 /usr/lib/firefox-3.0.1/firefox
jeremy 7578 0.0 0.3 3004 768 pts/0 S+ 22:44 0:00 grep firefox
jeremy@jeremy-desktop:~$ kill 7451
Lo que me gustaría es un comando que hiciera todo eso por mí. Tomaría una cadena de entrada y grep
para ella (o lo que sea) en la lista de procesos, y eliminaría todos los procesos en la salida:
jeremy@jeremy-desktop:~$ killbyname firefox
Intenté hacerlo en PHP pero exec('ps aux')
parece que solo muestra procesos que se han ejecutado exec()
en el propio script PHP (por lo que el único proceso que muestra es él mismo).
pkill firefox
Más información: http://linux.about.com/library/cmd/blcmdl1_pkill.htm
También es posible utilizar:
pkill -f "Process name"
Para mí funcionó perfectamente. Era lo que estaba buscando. pkill no funciona con el nombre sin la bandera.
Cuando -f
está configurado, se utiliza la línea de comando completa para la coincidencia de patrones.