2011-12-28 14 views

Respuesta

89
kill $(ps -e | grep dmn | awk '{print $1}') 
+5

Use la sintaxis '$()' más nueva: 'kill $ (ps -e | grep dmn | awk '{print $ 1}') '. – Stratus3D

+4

para otros, tuve que modificar esta respuesta para que funcione: 'kill $ (ps -efw | grep dmn | grep -v grep | awk '{print $ 2}')' no estoy seguro por qué y no me importa lo suficiente también mira más adentro. – joshweir

+1

@joshweir Es porque sino 'kill' intentó matar incluso el proceso 'grep' que estaba tratando de buscar el patrón – meain

13

Usted podría utilizar

pkill dmn 

si su sistema tiene la pkill command.

+0

+1 para pkill en lugar de killall. Está disponible en múltiples plataformas sin "significado" diferente ([killall] (http://bama.ua.edu/cgi-bin/man-cgi?killall) en Solaris es equivalente a [killall5] (http: // linux. die.net/man/8/killall5) en Linux por ejemplo - Es decir, procesos kill * ALL *) – plundra

+0

pkill -9 -f [d] mn – Mitch1077487

27

En caso de que existan múltiples procesos que desea eliminar se puede utilizar este:

ps -efw | grep dmn | grep -v grep | awk '{print $2}' | xargs kill 

Nota: Es necesario eliminar proceso grep sí mismo de la salida, por eso se utiliza grep -v grep.

+11

Puede evitar que grep aparezca en su grep colocando el primer carácter entre paréntesis, como: grep [d] mn – Oldskool

+1

@Oldskool Buen truco. Usar metacaracteres para hacer que grep la expresión regular no coincida es una buena idea. – jcollado

+0

@Oldskool, +1, ¡eres un genio! – jcr

-1
for procid in $(ps -aux | grep "some search" | awk '{print $2}'); do kill -9 $procid; done 

hola amigos .. podemos hacerlo utilizando para bucle.

"Some search" es aquí cualquier nombre de proceso que desee buscar, por ejemplo "java" así que supongamos que el recuento del proceso de Java es 200+, por lo que matar uno por uno será demasiado típico.

para que pueda usar el comando anterior.

Gracias.

4

Simplemente añadiendo a los demás, pero me gusta el uso de la capacidad funciones de expresiones regulares de awk:

kill $(ps | awk '/dmn/{print $1}') 
-1

Uso pgrep con la opción -f. kill $(pgrep -f dmn)

+1

Si tienes 'pgrep', ¿por qué no simplemente' pkill -f dmn'? – muru

1

Si usted tiene el comando pidof en su sistema (sé cubiertas tales como ZSH vienen con esto por defecto, si no me equivoco), que podría hacer algo así.

kill -9 $(pidof dmn) 
-1

Para ello, he creado un script en Python

#!/usr/bin/python3 
from os import system as sy 
from sys import argv 
sy("ps ax | ag "+argv[1]+" | awk '{print $1}' | xargs kill 9") 
Cuestiones relacionadas