pkill -f <application_na>
Matará todos os processos que contiverem o padrão <application_na>
em seus nomes.
Eu executo o comando ps -A | grep <application_name>
e obtendo uma lista de processos assim:
19440 ? 00:00:11 <application_name>
21630 ? 00:00:00 <application_name>
22694 ? 00:00:00 <application_name>
Eu quero matar todos os processos da lista: 19440
, 21630
, 22694
.
Eu tentei ps -A | grep <application_name> | xargs kill -9 $1
, mas funciona com erros.
kill: illegal pid ?
kill: illegal pid 00:00:00
kill: illegal pid <application_name>
Como posso fazer isso com graça?
pkill -f <application_na>
Matará todos os processos que contiverem o padrão <application_na>
em seus nomes.
O problema é que ps -A | grep <application_name> | xargs -n1
retorna a saída como esta
19440
?
00:00:11
<application_name>
21630
?
00:00:00
<application_name>
22694
?
00:00:00
<application_name>
Você pode usar awk
para obter primeiro uma coluna de ps
output .
ps -A | grep <application_name> | awk '{print $1}' | xargs -n1
Irá retornar a lista de PIDs
19440
21630
22694
E adicionando kill -9 $1
você tem um comando que mata todos os PIDs
ps -A | grep <application_name> | awk '{print $1}' | xargs kill -9 $1
killall
pode fazer isso.
$ killall application_name