quinta-feira, 23 de maio de 2013

Preciso matar vários processos do linux de uma só vez, o que eu faço?


Solução:
A primeira vista parece complicado, mas vou explicar detalhadamente.

  1. Filtre os processos.
    No exemplo filtrei tudo o que tivesse a palavra sh
    #ps ax | grep shisto continuou me dando problemas, pois apareciam processos que eu não queria matar, então eu fiz um novo filtro removendo o que eu não quero matar, que são os que tem a palavra total
    #ps ax | grep sh | grep -v total
  2. Filtre apenas o número do processo
    Para retirar o número do processo utilizei o comando cut delimitando pelo ponto de interrogação.
    cut -f1 -d '?'Ficou assim:
    #ps ax | grep sh | grep -v total |  cut -f1 -d '?'
  3. Crie um loop baseado na saída do número dos processos
    Um loop na linha de comando é algo simples, veja um exemplo claro.
    for i in {1..10}; do command; done
    Portanto colocando os processos filtrados fica assim:
    #for i in  $(ps ax | grep sh | grep -v total |  cut -f1 -d '?'); do echo $i; done
  4. Insira o comando para matar os processos do loop.
    Neste caso utilizei o comando kill com a opção de prioridade -9
    #for i in  $(ps ax | grep sh | grep -v total |  cut -f1 -d '?'); do kill -9 $i; done

Nenhum comentário:

Postar um comentário