Como matar um processo no Linux

Todos nós já tivemos aqueles dias em que nosso computador funciona excepcionalmente lento e gagueja ao executar até mesmo as tarefas básicas. No Windows, você só tem o Gerenciador de Tarefas do Windows para inspecionar e matar processos que não são tão importantes, mas consomem enormes quantidades de memória. No entanto, no Linux, você tem todo um arsenal de comandos e ferramentas GUI para gerenciar essas tarefas. Neste artigo, mostraremos alguns métodos fáceis de linha de comando (CLI), bem como métodos GUI para eliminar um processo no Linux.

Encerrar processo no Linux (2023)

Mas antes de mergulharmos no mundo do gerenciamento de processos no Linux, vamos entender o que exatamente é um processo e o que é um ID de processo em sistemas Linux.

O que são processos no Linux

No Linux, cada instância de um programa atualmente em execução é conhecida como um “processo”, enquanto cada arquivo executável é conhecido como um programa. Quando qualquer programa é executado, um processo é criado e cada processo recebe um número de identificação exclusivo de 5 dígitos conhecido como “ID do processo”. Quando um processo termina a execução ou é encerrado à força, seu ID de processo é atribuído ao próximo processo da linha.

Matar processo via linha de comando no Linux

Embora o uso do terminal às vezes pareça intimidador em comparação com o uso de ferramentas GUI para tarefas básicas, o gerenciamento de vários processos se torna muito mais fácil quando você entende os comandos e suas várias opções.

Sinais de terminação

Quando você tenta matar um processo da GUI ou da CLI no Linux, o kernel envia um sinal de encerramento para o processo. O processo age de acordo, dependendo do sinal recebido. A cada um desses sinais é atribuído um número específico para o programa entender rapidamente. Existem inúmeros tipos de sinais de terminação, mas explicamos apenas os essenciais aqui:

SinalValor numéricoDescriçãoSIGHUP1Significa ‘Signal Hangup’
É enviado quando o terminal é fechado. SIGINT2 Significa ‘Signal Interrupt’
É enviado quando o usuário finaliza o processo.SIGKILL9Ele significa ‘Signal Kill’
É enviado quando você precisa encerrar um processo imediatamenteSIGTERM15Significa ‘Signal Termination’
É enviado quando você precisa encerrar um processo e liberar os recursos consumidosSIGSTOP19 – para ARM, x86
17 – para ALFA
23 – para MIPS
24 – para PA-RISCIt significa ‘Sinal Stop’
É enviado quando você precisa pausar um processo e retomá-lo mais tarde. Os sinais mais usados ​​são o SIGKILL (9) e o SIGTERM (15).

  Como encontrar o endereço IP do seu roteador no Windows, Linux, Android, etc.

Identifique os IDs do processo

Antes de encerrar um processo, você precisa saber alguns detalhes do processo, como ID do processo, tempo de execução etc. Para saber os detalhes de um processo, use o comando ps:

PS

Com o comando ps, você precisa procurar o processo rolando e anotando seu nome, o que pode ser complicado. Em vez disso, você pode até usar o comando grep com o comando ps em um pipeline, conforme mostrado abaixo:

ps | grep

Para tornar as coisas mais simples, existe um comando separado que mostra apenas o ID do processo de qualquer processo em execução que você precisa saber. A sintaxe para usar o comando pidof é:

pidof

Encerre o processo usando o comando kill

Depois de anotar o ID do processo que deseja encerrar, o comando mais comum usado para encerrar programas em seu sistema Linux é o comando kill. A sintaxe para usar o comando kill é:

matar

O parâmetro é opcional e o comando kill envia o sinal SIGTERM (15) por padrão. Você pode enviar qualquer outro sinal por seu valor numérico ou pelo nome do sinal real da tabela acima.

Encerre o processo usando o comando pkill

Se você achar que a busca pelo id do processo é inconveniente, você pode usar o comando pkill. Ele procura os processos que correspondem a um padrão e o mata. A sintaxe para usar o comando pkill é:

pkill

Algumas das opções comuns para emparelhar com o comando pkill são:

OptionDescription-nSeleciona apenas os processos mais recentes que correspondem ao id do processo-uSeleciona os processos pertencentes a um usuário específico-xSeleciona os processos que correspondem exatamente ao padrão

Isso é particularmente importante quando vários usuários estão trabalhando em diferentes instâncias do mesmo programa no mesmo sistema e uma das instâncias começa a apresentar algum comportamento inesperado. Por exemplo, na captura de tela abaixo, estamos eliminando a instância “gedit” pertencente ao usuário ‘intel’ usando o comando pkill no Linux:

pkill -u intel gedit

Encerre o processo usando o comando killall

O comando killall funciona de forma semelhante ao comando kill, mas mata todos os processos correspondentes ao nome do processo, independentemente do usuário. Por padrão, ele envia o sinal SIGTERM se não for especificado de outra forma. Uma coisa interessante a se notar é que o comando killall nunca pode matar a si mesmo, mas pode encerrar outras instâncias do comando killall. A sintaxe para usar o comando killall é:

killall

Algumas das opções para emparelhar com o comando killall são:

OptionDescription-rInterpreta o process_name como um padrão regex e, em seguida, elimina os processos correspondentes ao padrão-uelimina o processo especificado pertencente a um proprietário especificado.-oElimina os processos especificados mais antigos (iniciados antes) do que um horário específico.-yElimina os processos especificados mais novos ( iniciado após) a hora específica.

O comando killall pode ser útil para encerrar uma série do mesmo processo ou até mesmo todos os processos pertencentes a um proprietário específico. Aqui em nosso exemplo, estamos matando todos os processos de “dormir por 500 segundos” usando o comando killall no Linux:

  Como configurar seu próprio servidor de streaming de música no Linux com Subsonic

killall -v dormir

Encerre o processo do Linux usando o comando top/htop

Esse método de matar processos é útil quando você não tem ideia de quais processos estão consumindo o máximo de recursos. Em ambos os comandos, você pode navegar por todos os processos em execução ou mesmo por processos zumbis e finalizá-los rapidamente. Para usar o comando top para monitorar seus recursos, use a sintaxe no Terminal:

principal

Entendendo a saída:

A saída principal do comando top é dividida em colunas que são:

  • PID – mostra o ID do processo em execução
  • User – mostra o dono do processo
  • PR – mostra o valor de prioridade do processo atribuído pelo sistema operacional
  • NI – mostra os bons valores que são como atribuir valores espaçados pelo usuário para controlar manualmente a prioridade de uma tarefa.
  • VIRT – mostra a quantidade de memória virtual usada pelo processo.
  • RES – mostra a quantidade de memória física usada pelo processo
  • SHR – mostra a quantidade de memória compartilhada por outros processos
  • S – mostra o estado atual do processo que pode ser:
    • D – sono ininterrupto
    • R – correndo
    • S- dormindo
    • T- parado
    • Z- zumbi
  • %CPU – Mostra a quantidade de CPU utilizada pelo processo em porcentagem
  • %MEM – Mostra a quantidade de RAM utilizada pelo processo em porcentagem
  • TIME+ – Mostra o tempo total de execução do processo
  • Comando – Mostra qual comando foi invocado para o processo.
  • Se você não souber o ID do processo da tarefa que deseja eliminar, navegue pela lista usando as teclas de seta ou procure o nome do processo na tabela de processos no Linux.

    Para pesquisar o nome do processo, pressione ‘L’ no teclado e digite o nome do processo que deseja pesquisar. Depois de encontrar o processo nefasto, pressione ‘k’ no teclado para matar o processo. Agora, insira o ID do processo ou deixe-o no processo atualmente destacado e pressione ‘ENTER’. Em seguida, insira o sinal de término e pressione ‘ENTER’ para encerrar o programa. Para retornar ao terminal, pressione ‘q’ no teclado.

    Embora o comando top mostre detalhes como ID do processo, consumo de memória e mais para todos os processos em execução, ele não é adequado para iniciantes, pois não mostra nenhum mapeamento de teclas ou como usá-lo. Por outro lado, o comando htop tem uma interface mais amigável, mesmo para uma ferramenta de linha de comando. Além disso, mostra todos os detalhes em uma exibição separada, portanto, não sobrecarrega a janela do terminal. Ele não vem pré-instalado na maioria das distros, e você precisa usar o seguinte comando para instalar o htop no Linux:

    sudo apt install -y htop

    Para usar o htop para gerenciar processos no Linux, use o comando abaixo:

    htop

    Para matar um programa, navegue até o nome do processo que deseja encerrar, pressione ‘F9’ e pressione Enter. Se você precisar pesquisar e matar qualquer programa, pressione ‘F3’ no teclado, digite o nome e pressione Enter. O nome do processo será destacado, pressione F9 e depois pressione Enter no teclado para finalizar o processo.

      Analise seus servidores Windows e Linux em busca de vulnerabilidade com o Nessus

    Matar um processo via System Monitor no Linux

    Se você acha que o método de linha de comando é difícil para você, pode usar a ferramenta integrada de monitoramento do sistema que está disponível em todas as distribuições do Linux. Para saber como funciona, abra a ferramenta de monitoramento do sistema no menu Aplicativos e siga as etapas abaixo.

    1. Assim que a ferramenta de monitoramento do sistema for aberta, você verá três guias na parte superior denominadas — Processos, Recursos e Sistema de Arquivos. Para gerenciar seus processos, vá até a aba “Processos”. Aqui, você verá todos os seus processos em execução no momento. Pressione ‘CTRL+F’ para procurar um nome de processo. Clique no nome do processo que deseja encerrar e clique em “Finalizar processo”.

    2. Em seguida, você receberá um prompt de confirmação se deseja encerrar o processo ou não. Vá em frente e clique no grande botão vermelho “Finalizar processo” para encerrar o processo no Linux.

    perguntas frequentes

    Como faço para parar todos os processos no Linux?

    Se você precisar interromper todos os processos (exceto o shell de login, init e processos específicos do kernel) para um usuário específico no Linux, use o comando pkill ou o comando killall de acordo com a sintaxe:

    pkill -u

    killall -u

    Se você precisar matar todos os processos de todos os usuários, incluindo o sistema init, pressione as teclas ‘ALT + Prt Sc + o’ no teclado.

    É correto encerrar um processo?

    Ao fechar qualquer processo em segundo plano não essencial ou um processo de usuário que esteja consumindo muita memória do sistema, você libera os recursos que agora podem ser utilizados por outros processos. Porém, antes de encerrar qualquer processo, verifique se você não está eliminando um processo essencial do sistema operacional.

    Quais são os processos em segundo plano no Linux?

    No Linux, os processos em segundo plano são processos que podem ser executados sem a instância do shell ou qualquer intervenção do usuário. Eles podem ser visualizados usando qualquer um dos comandos – top, htop, ps, etc.

    O que é um processo zumbi?

    Um processo que foi eliminado pelo usuário, mas ainda está ocupando memória, é conhecido como processo zumbi.

    O que CTRL + Z faz no Linux?

    Quando você usa CTRL + Z no Linux, ele envia o sinal SIGTSTP que suspende o processo e o envia em segundo plano. Quando um processo está em um estado suspenso em segundo plano, você não pode matar o processo até que ele seja trazido de volta para o primeiro plano.

    Mate processos no Linux facilmente

    Matar processos que consomem muita memória é uma tarefa crucial que todo usuário deve aprender. Neste artigo, mostramos o método de linha de comando, incluindo comandos como killall e pkill, bem como os métodos GUI para eliminar processos no Linux. Até detalhamos como usar ferramentas populares como top e htop para gerenciar processos em seu PC Linux. Se você enfrentar algum problema ao usar essas ferramentas para encerrar um processo, informe-nos nos comentários abaixo.