Linux: Como matar um processo de propriedade da raiz pelo nome do parâmetro?

1

Eu gostaria de saber como eliminar os processos de propriedade da raiz com base nas informações de seus parâmetros:

root      3176  0.0  0.8   3604  2252 ?        S    21:33   0:00 sudo python main.py
root      3191 65.4  4.6  96820 11744 ?        Rl   21:33  10:00 python main.py

Estou tentando assim, mas sem sucesso:

pi@raspberrypi ~ $ ps aux | grep main.py | awk '{print $2}' | xargs kill
pi@raspberrypi ~ $ sudo pkill -u root main.py
    
por Bob 25.01.2015 / 21:56

2 respostas

5

pkill seria a abordagem mais simples, você acabou de perder um parâmetro.

De "man pkill":

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

No seu caso, os nomes dos processos são "python" e "sudo".

    
por 25.01.2015 / 22:23
1

Ah, eu investiguei; então o que você precisa fazer é mudar para

ps aux|grep main.py|awk '{print $2}'|sudo xargs kill -9

Atualizei minha resposta para refletir o código solicitado

    
por 25.01.2015 / 22:28