all shell command-line kill

shell - all - ¿Cómo matar todos los procesos que coinciden con un nombre?



kill-9 linux (11)

Digamos que quiero matar todos los procesos que contengan la palabra amarok. Puedo imprimir los comandos que quiero ejecutar. Pero, ¿cómo puedo hacer que el shell los ejecute? es decir.

ps aux | grep -ie amarok | awk ''{print "kill -9 " $2}'' Output: kill -9 3052 kill -9 3071 kill -9 3076 kill -9 3077 kill -9 3079 kill -9 3080 kill -9 3082 kill -9 3083 kill -9 3084 kill -9 3085 kill -9 3086 kill -9 3087 kill -9 3088 kill -9 3089 kill -9 4031


¿Quizás agregando los comandos al archivo ejecutable, configurando el permiso + x y luego ejecutando?

ps aux | grep -ie amarok | awk ''{print "kill -9 " $2}'' > pk;chmod +x pk;./pk;rm pk


Creo que este comando killall es exactamente lo que necesitas. El comando se describe como "procesos de eliminación por nombre". Es fácil de usar. Por ejemplo

killall chrome

Este comando eliminará todos los procesos de Chrome. Aquí hay un enlace sobre el comando killall.

http://linux.about.com/library/cmd/blcmdl1_killall.htm

Espero que este comando te pueda ayudar.


Del man 1 pkill

-f The pattern is normally only matched against the process name. When -f is set, the full command line is used.

Lo que significa, por ejemplo, si vemos estas líneas en ps aux :

apache 24268 0.0 2.6 388152 27116 ? S Jun13 0:10 /usr/sbin/httpd apache 24272 0.0 2.6 387944 27104 ? S Jun13 0:09 /usr/sbin/httpd apache 24319 0.0 2.6 387884 27316 ? S Jun15 0:04 /usr/sbin/httpd

Podemos matarlos a todos usando la opción pkill -f :

pkill -f httpd


Si desea ejecutar la salida de un comando, puede ponerlo dentro de $(...) , sin embargo, para su tarea específica, eche un vistazo a los comandos killall y pkill .


Si está utilizando cygwin o un shell mínimo que carece de killall , puede usar este script:

killall.sh - Mata por nombre de proceso.

#/bin/bash ps -W | grep "$1" | awk ''{print $1}'' | xargs kill -f;

Uso:

$ killall <process name>


También puede evaluar su salida como un subproceso, rodeando todo con marcas de retroceso o colocándolo dentro de $ ():

`ps aux | grep -ie amarok | awk ''{print "kill -9 " $2}''` $(ps aux | grep -ie amarok | awk ''{print "kill -9 " $2}'')


pkill -x coincide exactamente con el nombre del proceso.

pkill -x amarok

pkill -f es similar pero permite un patrón de expresión regular.

Tenga en cuenta que pkill sin otros parámetros (por ejemplo, -x, -f) permitirá coincidencias parciales en los nombres de proceso. Entonces "pkill amarok" mataría a amarok, amarokBanana, bananaamarok, etc.

Ojalá -x fuera el comportamiento por defecto!


prueba kill -s 9 ps -ef |grep "Nov 11" |grep -v grep | awk ''{print $2}'' ps -ef |grep "Nov 11" |grep -v grep | awk ''{print $2}'' Para eliminar procesos del 11 de noviembre o kill -s 9 ps -ef |grep amarok|grep -v grep | awk ''{print $2}'' ps -ef |grep amarok|grep -v grep | awk ''{print $2}'' Para matar procesos que contienen la palabra amarok


usa pgrep

kill -9 $(pgrep amarok)


La forma segura de hacer esto es:

pkill -f amarok


ps aux | grep -ie amarok | awk ''{print $2}'' | xargs kill -9

xargs (1): xargs - construye la (s) lista (s) de argumentos y ejecuta la utilidad. Útil cuando quieres encauzar argumentos a algo como kill o ls o así sucesivamente.