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. Índice

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:

Sinal Valor numérico Descrição
INSCREVA-SE 1 Significa ‘Signal Hangup’
É enviado quando o terminal é fechado.
ASSINAR 2 Significa ‘interrupção de sinal’
É enviado quando o usuário finaliza o processo.
SIGKILL 9 Significa ‘Signal Kill’
É enviado quando você precisa encerrar um processo imediatamente
SIGTERM 15 Significa ‘Rescisão do Sinal’
É enviado quando você precisa encerrar um processo e liberar os recursos consumidos
SIGSTOP 19 – para ARM, x86
17 – para ALFA
23 – para MIPS
24 – para PA-RISC
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).

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 é:

kill

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:

Opção Descrição
-n Seleciona apenas os processos mais recentes que correspondem ao ID do processo
-u Seleciona os processos pertencentes a um usuário específico
-x Seleciona 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:

Opção Descrição
-r Interpreta o process_name como um padrão regex e, em seguida, mata os processos correspondentes ao padrão
-u mata o processo especificado pertencente a um proprietário especificado.
-o Mata os processos especificados mais antigos (iniciados antes) do que um horário específico.
-y Mata os processos especificados mais jovens (iniciados após) o tempo específico.

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:

killall -v sleep

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:

top

Entendendo a saída:

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

  1. PID – mostra o ID do processo em execução
  2. User – mostra o dono do processo
  3. PR – mostra o valor de prioridade do processo atribuído pelo sistema operacional
  4. NI – mostra os bons valores que são como atribuir valores espaçados pelo usuário para controlar manualmente a prioridade de uma tarefa.
  5. VIRT – mostra a quantidade de memória virtual usada pelo processo.
  6. RES – mostra a quantidade de memória física usada pelo processo
  7. SHR – mostra a quantidade de memória compartilhada por outros processos
  8. S – mostra o estado atual do processo que pode ser:
    • D – sono ininterrupto
    • R – correndo
    • S- dormindo
    • T- parado
    • Z- zumbi
  9. %CPU – Mostra a quantidade de CPU utilizada pelo processo em porcentagem
  10. %MEM – Mostra a quantidade de RAM utilizada pelo processo em porcentagem
  11. TIME+ – Mostra o tempo total de execução do processo
  12. 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.

Comandos htop do Linux 1 Comentário

Scroll to Top