web-dev-qa-db-esp.com

Cómo dar argumentos para matar vía pipe.

Necesito buscar un proceso determinado y matar ese proceso. Escribí un comando como este:

ps -e | grep dmn | awk '{print $1}' | kill

Donde el nombre del proceso es dmn. Pero no está funcionando. ¿Cómo puedo encontrar procesos por nombre y kill?.

56
user567879
kill $(ps -e | grep dmn | awk '{print $1}')
119
Daniel Persson

En caso de que haya varios procesos que desee eliminar, puede utilizar esto:

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

Nota: debe eliminar el proceso grep de la salida, por eso se utiliza grep -v grep.

35
jcollado

Usted podría usar

pkill dmn 

si su sistema tiene el comando pkill .

14
unutbu

Solo agregando otros, pero me gusta usar la capacidad de las características de regex de awk:

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

Si tiene el comando pidof en su sistema (sé que shells como ZSH vienen con esto por defecto, a menos que esté equivocado), podría hacer algo como eso.

kill -9 $(pidof dmn)
3
Nathan F.

También puedes usar killall :

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

hola amigos .. podemos hacerlo usando para bucle.

"Alguna búsqueda" es aquí el nombre del proceso que desea buscar, por ejemplo "Java", por lo que podemos decir que el proceso de Java es más de 200, por lo que matar a uno por uno será demasiado típico.

por lo que puede utilizar el comando anterior.

Gracias.

0
Nishant

Puede que no necesites pipe para esto, si tienes el comando pidof y sabes el nombre de la imagen, lo hice así:

kill $(pidof synergyc)

$() Entiendo esto, ya que convierte esa salida en una variable que kill puede usar, esencialmente como lo haría pipe. Más corto y más fácil de entender que otras opciones, pero también tal vez menos flexible y más directo.

0
NotVeryPythonic