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
?.
kill $(ps -e | grep dmn | awk '{print $1}')
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
.
Solo agregando otros, pero me gusta usar la capacidad de las características de regex de awk:
kill $(ps | awk '/dmn/{print $1}')
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)
También puedes usar killall :
killall dmn
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.
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.