Digamos que quiero matar todos los procesos que contienen la palabra amarok. Puedo imprimir los comandos que quiero ejecutar. Pero, ¿cómo hago para 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
shell
command-line
kill
PuercoPop
fuente
fuente
| sh -x
después del resto de su línea de comando?kill -9
en un proceso ver [gestión de procesos] [1] [1]: mywiki.wooledge.org/… ...amarokx
proceso también? Hago vi, mata losupervisorctl
que contiene 'vi' en la palabra.-9
es bastante inútil: ¿hay alguna información mejor sobre por qué las personas no deberían usarlo? Simplemente dice "no lo hagas, y despide a las personas que lo usan"; pero todo lo que he visto en cualquier otro lugar es quekill -9 {pid}
es cómo matar algo ...Respuestas:
De
man 1 pkill
Lo que significa, por ejemplo, si vemos estas líneas en
ps aux
:Podemos matarlos a todos usando la
-f
opción pkill :fuente
-9
al final!httpdx
proceso también? Hago vi, mata losupervisorctl
que contiene 'vi' en la palabra.-i
likepkill -fi wine
. Para verificar antes y después, useps uax | grep -i wine
.xargs (1): xargs - construye listas de argumentos y ejecuta la utilidad. Útil cuando quieres canalizar argumentos sobre algo así
kill
o algols
así.fuente
ps aux | grep -ie amarok | grep -v grep | awk '{print $2}' | xargs kill -9
(grep -v
significagrep --invert
)utilizar
pgrep
fuente
pkill -9 amarok
kill -9 $(pgrep -f amarok)
La forma segura de hacer esto es:
fuente
-l
bandera. De hecho, simplemente me aliaspkill
parapkill -fl
poder ejecutar algo comopkill jboss
y escupirá el proceso que acaba de matar.amarokx
proceso también? Hago vi, mata losupervisorctl
que contiene 'vi' en la palabra.pkill: invalid option -- 'l'
- pkill de procps-ng 3.3.12Creo que este comando killall es exactamente lo que necesitas. El comando se describe como "matar procesos por nombre". Es fácil de usar. Por ejemplo
Este comando matará todo el proceso 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.
fuente
ps aux
la salidapkill -x coincide exactamente con el nombre del proceso.
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 los procesos. Entonces "pkill amarok" mataría a amarok, amarokBanana, bananaamarok, etc.
¡Ojalá -x fuera el comportamiento predeterminado!
fuente
amarokx
proceso también? Hago vi, mata losupervisorctl
que contiene 'vi' en la palabra.Si desea ejecutar la salida de un comando, puede ponerlo dentro
$(...)
, sin embargo, para su tarea específica, eche un vistazo a los comandoskillall
ypkill
.fuente
También puede evaluar su salida como un subproceso, rodeando todo con ticks de retroceso o poniéndolo dentro de $ ():
fuente
pruebe kill -s 9
ps -ef |grep "Nov 11" |grep -v grep | awk '{print $2}'
para eliminar los procesos del 11 de noviembre o kill -s 9ps -ef |grep amarok|grep -v grep | awk '{print $2}'
para eliminar los procesos que contienen la palabra amarokfuente
¿Quizás agregar los comandos al archivo ejecutable, configurar + x permiso y luego ejecutar?
fuente
Si está usando cygwin o algún shell mínimo que carece
killall
, puede usar este script:killall.sh: matar por nombre de proceso.
Uso:
fuente
kill: invalid argument f