Digamos que eu queira matar todos os processos que contenham a palavra amarok. Eu posso imprimir os comandos que quero executar. Mas como eu realmente faço o shell executá-los. ie
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
fonte
fonte
| sh -x
após o restante da sua linha de comando?kill -9
em um processo de ver [gestão de processos] [1] [1]: mywiki.wooledge.org/... ...amarokx
processo? Se pkill vi, mata osupervisorctl
que contém `vi 'na palavra.-9
é inútil - existe alguma informação melhor sobre por que as pessoas não devem usá-lo? Apenas diz "não, e demitir pessoas que o usam"; mas tudo que eu já vi em qualquer outro lugar é quekill -9 {pid}
é como matar alguma coisa ...Respostas:
De
man 1 pkill
O que significa, por exemplo, se vemos essas linhas em
ps aux
:Podemos matá-los todos usando a
-f
opção pkill :fonte
-9
até o fim!httpdx
processo? Se pkill vi, mata osupervisorctl
que contém `vi 'na palavra.-i
, use , comopkill -fi wine
. Para verificar antes e depois, useps uax | grep -i wine
.xargs (1): xargs - constrói listas de argumentos e executa o utilitário. Útil quando você quer tubulação em argumentos para algo como
kill
ouls
ou assim por diante.fonte
ps aux | grep -ie amarok | grep -v grep | awk '{print $2}' | xargs kill -9
(grep -v
significagrep --invert
)usar
pgrep
fonte
pkill -9 amarok
kill -9 $(pgrep -f amarok)
A maneira segura de fazer isso é:
fonte
-l
bandeira. Na verdade, eu apenas fiz um aliaspkill
parapkill -fl
que eu possa executar algo comopkill jboss
e isso cuspirá o processo que acabou de matar.amarokx
processo? Se pkill vi, mata osupervisorctl
que contém `vi 'na palavra.pkill: invalid option -- 'l'
- pkill de procps-ng 3.3.12Eu acho que esse comando killall é exatamente o que você precisa. O comando é descrito como "matar processos por nome". É fácil de usar. Por exemplo
Este comando irá matar todos os processos do Chrome. Aqui está um link sobre o comando killall
http://linux.about.com/library/cmd/blcmdl1_killall.htm
Espero que este comando possa ajudá-lo.
fonte
ps aux
da saídapkill -x corresponde exatamente ao nome do processo.
pkill -f é semelhante, mas permite um padrão de expressão regular.
Observe que o pkill sem outros parâmetros (por exemplo, -x, -f) permitirá correspondências parciais nos nomes dos processos. Então "pkill amarok" mataria amarok, amarokBanana, bananaamarok, etc.
Eu gostaria que -x fosse o comportamento padrão!
fonte
amarokx
processo? Se pkill vi, mata osupervisorctl
que contém `vi 'na palavra.Se você deseja executar a saída de um comando, é possível inseri-lo
$(...)
, no entanto, para sua tarefa específica, dê uma olhada nos comandoskillall
epkill
.fonte
Você também pode avaliar sua saída como um subprocesso, envolvendo tudo com back ticks ou colocando-a dentro de $ ():
fonte
tente kill -s 9
ps -ef |grep "Nov 11" |grep -v grep | awk '{print $2}'
Para matar processos de 11 de novembro ou kill -s 9ps -ef |grep amarok|grep -v grep | awk '{print $2}'
Para matar processos que contenham a palavra amarokfonte
Talvez adicionando os comandos ao arquivo executável, definindo + x permissão e depois executando?
fonte
Se você estiver usando o cygwin ou algum shell mínimo que não
killall
tenha, basta usar este script:killall.sh - mata pelo nome do processo.
Uso:
fonte
kill: invalid argument f