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