ver terminar saber procesos proceso pkill los eliminar como comando linux

saber - terminar proceso en terminal linux



¿Cómo puedo matar un proceso por nombre en lugar de PID? (17)

El comando kill predeterminado acepta nombres de comando como una alternativa al PID. Ver matar (1) . Un problema frecuente es que bash proporciona su propia kill que acepta números de trabajo, como kill %1 , pero no nombres de comando. Esto dificulta el comando por defecto. Si la funcionalidad anterior es más útil para usted que la última, puede desactivar la versión de bash llamando

enable -n kill

Para más información, vea kill y enable entradas en bash (1) .

Por ejemplo, a veces cuando intento iniciar Firefox dice que ya se está ejecutando un proceso de Firefox. Así que 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 haría 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 mostrar solo los procesos que se han ejecutado con exec () en el propio script PHP (por lo que el único proceso que muestra es el mismo).


En Mac no pude encontrar el pgrep y pkill tampoco funcionaba killall, así que escribí un sencillo guión de una línea:

export pid=`ps | grep process_name | awk ''NR==1{print $1}'' | cut -d'' '' -f1`;kill $pid

Si hay una forma más fácil de hacerlo, por favor, comparta.


Es extraño, pero no he visto una solución como esta:

kill -9 `pidof firefox`

También puede matar múltiples procesos (múltiples pids) como:

kill -9 `pgrep firefox`

Prefiero pidof ya que tiene salida de una sola línea:

> pgrep firefox 6316 6565 > pidof firefox 6565 6316


La forma más fácil de hacerlo es primero comprobar que está obteniendo los ID de proceso correctos con:

pgrep -f [part_of_a_command]

Si el resultado es el esperado. Ir con:

pkill -f [part_of_a_command]


Me preguntaba lo mismo, pero el problema con las respuestas actuales es que no verifican de forma segura los procesos que deben eliminarse, por lo que ... podría provocar errores terribles:) ... especialmente si varios procesos coinciden con el patrón .

Como un descargo de responsabilidad, no soy un profesional y ciertamente hay espacio para mejorar.

Así que escribí un pequeño script sh:

#!/bin/sh killables=$(ps aux | grep $1 | grep -v mykill | grep -v grep) if [ ! "${killables}" = "" ] then echo "You are going to kill some process:" echo "${killables}" else echo "No process with the pattern $1 found." return fi echo -n "Is it ok?(Y/N)" read input if [ "$input" = "Y" ] then for pid in $(echo "${killables}" | awk ''{print $2}'') do echo killing $pid "..." kill $pid echo $pid killed done fi


Normalmente uso el comando killall, vea aquí para más detalles.


Para matar con grep:

kill -9 `pgrep myprocess`


Puedes matar procesos por nombre con killall <name>

killall envía una señal a todos los procesos que ejecutan cualquiera de los comandos especificados. Si no se especifica ningún nombre de señal, se envía SIGTERM.

Las señales se pueden especificar por nombre (por ejemplo, -HUP o -SIGHUP ) o por número (por ejemplo, -1 ) o por opción -s .

Si el nombre del comando no es una expresión regular (opción -r ) y contiene una barra (/), los procesos que ejecutan ese archivo en particular se seleccionarán para eliminar, independientemente de su nombre.

Pero si no ve el proceso con ps aux , probablemente no tenga derecho a matarlo ...


Si ejecuta GNOME, puede usar el monitor del sistema (Sistema-> Administración-> Monitor del sistema) para detener los procesos como lo haría en Windows. KDE tendrá algo similar.


También es posible utilizar:

pkill -f "Process name" .

Para mi funcionó perfecto, era lo que buscaba. En mi caso sin bandera pkill no funcionó con nombre.

Cuando se establece -f , la línea de comando completa se usa para la coincidencia de patrones.


Una alternativa un poco más larga:

kill `pidof firefox`


Utilizando el comando #killall :

#killall -9 <processname>


kill -9 $ (ps aux | grep -e myprocessname | awk ''{print $ 2}'')


más correcto sería:

export pid=`ps aux | grep process_name | awk ''NR==1{print $2}'' | cut -d'' '' -f1`;kill -9 $pid


Mata todos los procesos que tengan snippet en la ruta de inicio. Puede eliminar todas las aplicaciones iniciadas desde algún directorio al poner / directory / como un fragmento. Esto es bastante útil cuando inicia varios componentes para la misma aplicación desde el mismo directorio de aplicaciones.

ps ax | grep <snippet> | grep -v grep | awk ''{print $1}'' | xargs kill


ps aux | grep processname | cut -d'' '' -f7 | xargs kill -9 $