Mate um processo com um único comando

Muitas vezes, precisamos encerrar um processo por meio de um terminal. Se soubermos o nome completo do processo (por exemplo: kate) não temos problemas, um simples:

killall kate

Isso resolve o problema para nós ... mas o que acontece se não soubermos o nome exato do processo?

Nessas ocasiões, temos que listar todos os processos com ps aux conforme mostrado na seguinte captura de tela:


Em seguida, procure o PID do processo, que neste caso procuramos o PID do kate:


Nessa altura, faça:

kill 3808

E pronto, aí nós matamos o processo.

Bom ... em uma única linha podemos pesquisar o processo (sem precisar saber o nome completo), descobrir seu PID, e também matá-lo:
ps ax | grep kat | grep -v grep | awk '{print $2}' | xargs kill

Como podem ver:

  1. Listamos os processos (ps aux)
  2. Não sabemos o nome completo ou exato de kate (hey, pode ser kate-editor ou algo parecido), então apenas filtramos por gato (grep kat)
  3. Mas teremos dois processos relacionados a kat se usarmos apenas este filtro, um que é o processo de kate e outro que é o processo que ativamos para filtrar, deixo uma captura de tela para que você possa terminar de entender: (Observe que existem 2 linhas, ou seja, 2 processos)

  4. Para evitar o que foi explicado antes, fazemos outro filtro (grep -v grep) O que faremos é o oposto ... se filtrarmos usando grep, ele só mostrará as correspondências com o filtro, grep -v Nós instruímos você a NÃO mostrar as correspondências, mas mostrar o que não corresponde. Mostro a captura de tela de como seria o resultado até agora: (Observe que agora apenas o processo de Kate aparece)

  5. Bom, já temos o processo que queremos matar isolado, agora só temos que extrair o seu PID, que é o 2º número, ou seja, 4062. E o PID está na 2ª coluna (1ª coluna contém usuário com UID 1000), então usando awk podemos dizer que ele só mostra a partir dessa linha o que encontra na 2ª coluna (awk '{print $ 2}') O que nos mostraria apenas o número do processo, ou seja, apenas o PID aparecerá no terminal.
  6. Mas a gente não quer mostrar o PID, o que a gente quer é matar o processo com aquele PID ... então vamos fazer isso, vamos passar o que temos até agora para o comando matar e pronto (xargs matam)
  7. O que isso xargs significa? ... simples, neste caso não podemos passar o PID para matar apenas com tubos ( | ), isso simplesmente não é suficiente, então xargs (que permite passar valores ou dados e depois executá-los ou eliminá-los) é o que nos permitirá terminar o trabalho.

E aqui termina 😀

Sim ... Eu sei que isso parece um pouco complexo, e é exatamente por isso que tentei explicar da melhor maneira que pude.

Sei que possivelmente poucos necessitarão deste comando, mas o objetivo deste artigo é o mesmo do DesdeLinux, ensine-lhes algo novo todos os dias, sempre tentando fazer com que percam o medo do Linux... e, pessoalmente, também adoraria que aprendessem a usar o terminal sem medo 😉

Enfim ... espero que tenha achado interessante, continuo aprendendo a usar awk o que é realmente ótimo hehe.

lembranças


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   Ezitoc dito

    É verdade, o awk tem sido muito útil para mim e acho que quem precisa manipular arquivos de texto estruturados é altamente recomendável saber como usá-lo.

    Eu só tenho uma pergunta (que não tem nada a ver com a entrada: D), como (e com qual programa) você fez aquele efeito de desfoque que permite destacar uma parte da captura de tela?

    Saudações.

    1.    Ezitoc dito

      Testando se for do formato funciona e se não alguém me diga como fazer isso

      Muito obrigado.

    2.    KZKG ^ Gaara dito

      Bem, sim ... Eu redescobri o Linux agora que sei como trabalhar com o awk HAHAHAHA.
      Sobre o efeito e tal, nada ... é só o Gimp 😀

      Eu seleciono a parte que desejo destacar, recorto com [Ctrl] + [X] e colo como uma nova camada, então seleciono a camada inferior (que é aquela que desejo opacificar) e vou para Filtros- »Gaussiano (ou o que você escrever hehe) e voila.
      Agora, para dar o efeito escuro, eu simplesmente crio uma nova camada (fundo branco) e coloco entre as duas que eu já tinha, coloco a cor preta e na barra de transparência (canto superior direito) movo para onde Consigo o efeito desejado.

      Saudações e obrigado pelo comentário 🙂

      1.    Roberto Evolving Santana dito

        Excelente!!

  2.   Manuel da Fonte dito

    Se o processo for de um programa visível, nada mais confortável do que digitar matar no console, clique no programa para matar e pronto.

    1.    KZKG ^ Gaara dito

      clique no programa para matar
      hehe sim ... isso presumindo que você tenha uma GUI hehe.

      1.    Manuel da Fonte dito

        É isso mesmo, é por isso que disse "se o processo for de um programa que é visível."

        1.    Windousico dito

          É mais fácil clicar no botão com o "X". GNOME Shell ainda tem esse botão, certo? :-D.

          1.    Manuel da Fonte dito

            Se o programa estiver travado (que é o principal motivo pelo qual você precisaria interromper seu processo), é lógico que esse botão não responderá, não importa o quanto você o pressione.

            Acho que o GNOME Shell irá removê-lo em breve para que você possa ver a maravilha tátil de fechar janelas arrastando-as para a parte inferior da tela como no Windows 8. Não é preciso dizer que em monitores widescreen é um exercício fantástico.

          2.    Windousico dito

            Eu entendo agora. Nesse caso, prefiro Control + Alt + Esc (no KDE).

            Mal posso esperar para ver as novas visualizações do GNOME Shell, elas são um verdadeiro mimo.

  3.   adequado dito

    Isso faz o mesmo, mas menos está escrito.
    Neste caso, peguei o leafpad como exemplo; é por isso que o leaf aparece no grep
    ps -e | grep leaf | awk '{print $1}' | xargs kill

    lembranças

  4.   Sys dito

    Ufa! Meu filho, tente executar "pgrep kat", que é "pgrep" para alguma coisa.

    E para executar "man pgrep". E "man pidof", que às vezes "pidof" pode ajudá-lo.

    E para executar «ps aux | grep [k] at ", que não retornará como resultado" o processo que ativamos para a filtragem "que você comenta, poupando assim seu trabalho.

    Saudações!

    1.    Sys dito

      Ah, e "pkill", que faz o que você está procurando. Por exemplo: "pkill kat".

    2.    KZKG ^ Gaara dito

      Que interessante ... não sabia pgrep 🙂
      Obrigado pela dica 😀

      1.    Sys dito

        Obrigado a você e seus artigos.

        A propósito, em https://flossblog.wordpress.com/2009/11/11/truco-del-dia-excluir-al-proceso-grep-en-la-salida-de-ps-aux/ comentar sobre a técnica de usar comandos como «ps aux | grep [n] program_name ", eles explicam melhor do que eu lá.

        Saudações!

        1.    KZKG ^ Gaara dito

          Obrigado pelo link 😀
          Isso é o legal de existir. DesdeLinux…não importa se você é usuário, editor ou administrador, todos nós sempre aprendemos coisas novas 🙂

          Saudações e obrigado novamente amigo.

  5.   Koste dito

    Muito obrigado a todos pelo seu tempo e dedicação, vale a pena visitar e ler este site várias vezes ao dia.

    Obrigado novamente.

  6.   Sr. Linux. dito

    KZKG ^ Gaara é quase sempre o mesmo, quando se trata desse tipo de dicas, tem outra pessoa que faz o mesmo com um simples comando. Mas eu o parabenizo, ele está sempre contribuindo continuamente.

    1.    KZKG ^ Gaara dito

      hehe sim… Eu sei fazer X osa e venho aqui compartilhar o método, mas aí eles dividem uma forma mais simples de conseguir a mesma coisa hahaha, mas com isso todos nós ganhamos, certo? 😀

      1.    truko22 dito

        Isso mesmo 0 /

      2.    Manuel da Fonte dito

        Hahaha, você sempre segue o caminho mais complicado. 😀

        1.    KZKG ^ Gaara dito

          HAHAHA sim, sempre pensei: «Se eu sei fazer da maneira difícil, então saberei como aprender a fazer da maneira simples sem problemas.»E… vice-versa não funciona da mesma forma hahaha.

  7.   Oscar dito

    O problema seria se tivermos dois processos com um nome semelhante.
    Por exemplo, um processo de kate e outro processo de ... mmm ... digamos kater xD
    Com esse comando, mataríamos os dois, certo?

    1.    KZKG ^ Gaara dito

      Bem, sim, isso aconteceria 🙂

  8.   truko22 dito

    Pobre Kate. Eu uso o xkill no KDE, ele é lançado rapidamente com "ctrl + alt + esc" ou também com "ctrl + Esc" abra "Atividades do sistema" e faça graficamente. Agora este procedimento através do terminal deve ser aprendido, embora eu tenha um servidor home com debian estável e que não trava de jeito nenhum.

  9.   Yulian dito

    Ótimo! agora que estou fazendo o curso de sistemas operacionais e preciso realizar tarefas com o terminal, seu tutorial foi de grande ajuda! obrigado

  10.   pablo dito

    Muito bem explicado, ótimo o blog que acabei de conhecer, aponto para os favoritos. Obrigado.

  11.   Dentro em pouco dito

    Bem, é bom, embora às vezes eles não possam ser mortos….

  12.   dcoy dito

    pkill -9

    1.    dcoy dito

      pkill -9 "nome do processo"
      no comentário anterior coloquei «» mas não saiu xD

  13.   melhor dito

    boa noite, tenho tempo de ler seu feed e hoje resolvi experimentar este comando ps ax | grep chrome | grep -v grep | awk '{print $ 1}' | xargs kill e recebo o seguinte erro de kill: não é possível localizar o processo "?" com a pouca experiência que tenho no bash resolvi fazer algumas modificações e no final fiquei com o ps -A | grep c | grep -v grep | awk '{print $ 1}' | xargs kill já que ps -A é usado para mostrar todos os processos de forma resumida e a segunda anomalia foi que ele me lançou o TTY «?» e funcionou para mim muito obrigado gostei muito do seu blog, saudações

  14.   Michael dito

    Obrigada compa, você não imagina a quantidade de problemas que acabou de resolver para mim com este comando.

    Saudações !!

  15.   o email dito

    OBRIGADO !!!!

  16.   Arthur dito

    Excelente postagem. Exatamente o que eu procurava e não sabia fazer, e a explicação era muito boa.

    Saudações.