Domine o Linux: Mate Processos com Facilidade (Guia Completo)

É comum que, em algum momento, o computador apresente lentidão e dificuldades em realizar até mesmo as tarefas mais básicas. No sistema operacional Windows, o usuário tem acesso ao Gerenciador de Tarefas para monitorar e encerrar processos que, embora não sejam essenciais, consomem uma quantidade significativa de memória. No entanto, o Linux oferece um conjunto mais amplo de ferramentas e comandos, tanto na interface gráfica quanto na linha de comando, para gerenciar esses processos. Este artigo demonstrará diversas maneiras de eliminar processos no Linux, tanto por meio de comandos no terminal quanto por ferramentas com interface gráfica.

Finalizando Processos no Linux (2023)

Antes de explorarmos o gerenciamento de processos no Linux, é crucial entender o que são processos e identificadores de processos (IDs) nesse sistema operacional.

O Que São Processos no Linux?

No contexto do Linux, cada instância de um programa em execução é chamada de “processo”, enquanto os arquivos executáveis são denominados “programas”. Ao executar um programa, um processo é iniciado e recebe um número de identificação único de 5 dígitos, conhecido como “ID do processo”. Quando um processo termina sua execução ou é finalizado à força, seu ID é atribuído ao próximo processo na fila.

Finalizando Processos via Linha de Comando no Linux

Apesar de o uso do terminal, às vezes, parecer complexo em comparação com as ferramentas de interface gráfica para tarefas básicas, o gerenciamento de múltiplos processos torna-se mais eficiente quando se dominam os comandos e suas diversas opções.

Sinais de Terminação

Ao tentar finalizar um processo, seja pela interface gráfica ou pela linha de comando, o kernel envia um sinal de término ao processo. A ação do processo dependerá do sinal recebido. Cada um desses sinais possui um número específico para facilitar o entendimento pelo programa. Há diversos tipos de sinais de término, mas aqui abordaremos apenas os essenciais:

Sinal Valor Numérico Descrição
SIGHUP 1 Significa ‘Sinal de Desconexão’. É enviado quando o terminal é fechado.
SIGINT 2 Significa ‘Sinal de Interrupção’. É enviado quando o usuário encerra o processo.
SIGKILL 9 Significa ‘Sinal de Abate’. É enviado quando se precisa finalizar um processo imediatamente.
SIGTERM 15 Significa ‘Sinal de Término’. É enviado quando se deseja finalizar um processo e liberar os recursos que ele está consumindo.
SIGSTOP 19 – para ARM, x86
17 – para ALFA
23 – para MIPS
24 – para PA-RISC
Significa ‘Sinal de Parada’. É enviado quando se necessita pausar um processo e retomá-lo posteriormente.

Os sinais mais utilizados são SIGKILL (9) e SIGTERM (15).

Identificando IDs de Processos

Antes de encerrar um processo, é necessário obter algumas informações, como seu ID e tempo de execução. Para isso, utilize o comando `ps`:

ps

O comando `ps` exibe uma lista de processos, o que pode dificultar a busca pelo processo desejado. Uma alternativa é usar o comando `grep` em conjunto com o `ps`:

ps | grep

Para simplificar ainda mais a identificação, existe o comando `pidof`, que mostra apenas o ID do processo:

pidof

Encerrando Processos com o Comando `kill`

Após obter o ID do processo a ser finalizado, o comando mais usado no Linux para essa finalidade é o `kill`. A sintaxe para utilizá-lo é:

kill

O parâmetro `` é opcional. Se omitido, o comando `kill` envia o sinal SIGTERM (15) por padrão. É possível enviar qualquer outro sinal usando seu valor numérico ou nome, conforme a tabela apresentada anteriormente.

Finalizando Processos com o Comando `pkill`

O comando `pkill` facilita o processo de finalização, pois elimina a necessidade de buscar o ID do processo. Ele pesquisa processos que correspondem a um padrão e os finaliza. Sua sintaxe é:

pkill

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

Opção Descrição
-n Seleciona apenas os processos mais recentes que correspondem ao ID do processo.
-u Seleciona processos pertencentes a um usuário específico.
-x Seleciona processos que correspondem exatamente ao padrão.

Isso é especialmente útil em situações onde vários usuários estão executando instâncias do mesmo programa e uma delas apresenta comportamento inadequado. No exemplo abaixo, a instância do “gedit” pertencente ao usuário ‘intel’ é finalizada com o comando `pkill`:

pkill -u intel gedit

Finalizando Processos com o Comando `killall`

O comando `killall` opera de forma semelhante ao `kill`, mas finaliza todos os processos que correspondem ao nome fornecido, independentemente do usuário. Por padrão, envia o sinal SIGTERM, a menos que outro sinal seja especificado. Uma característica interessante é que o `killall` não pode se auto finalizar, mas pode encerrar outras instâncias do comando. A sintaxe do `killall` é:

killall

Algumas opções para o comando `killall` são:

Opção Descrição
-r Interpreta o nome do processo como um padrão regex e finaliza os processos correspondentes.
-u Finaliza processos de um proprietário específico.
-o Finaliza os processos mais antigos (iniciados antes) que um determinado horário.
-y Finaliza os processos mais recentes (iniciados após) um determinado horário.

O comando `killall` é útil para encerrar múltiplas instâncias do mesmo processo ou processos de um determinado proprietário. No exemplo abaixo, todos os processos “sleep 500” são finalizados com o comando `killall`:

killall -v sleep

Finalizando Processos no Linux com `top` e `htop`

Esses comandos são ideais para identificar processos que estão consumindo muitos recursos. Eles permitem visualizar todos os processos em execução, incluindo processos zumbis, e finalizá-los rapidamente. Para usar o comando `top`, basta inserir no terminal:

top

A saída do comando `top` é dividida em colunas, que incluem:

  • PID – ID do processo em execução.
  • User – Proprietário do processo.
  • PR – Prioridade do processo definida pelo sistema operacional.
  • NI – Valor de “nice” definido pelo usuário para controlar manualmente a prioridade.
  • VIRT – Memória virtual utilizada pelo processo.
  • RES – Memória física utilizada pelo processo.
  • SHR – Memória compartilhada com outros processos.
  • S – Estado atual do processo:
    • D – Sono ininterrupto.
    • R – Em execução.
    • S – Dormindo.
    • T – Parado.
    • Z – Zumbi.
  • %CPU – Porcentagem de CPU utilizada pelo processo.
  • %MEM – Porcentagem de RAM utilizada pelo processo.
  • TIME+ – Tempo total de execução do processo.
  • Comando – Comando invocado para o processo.
  • Para encontrar um processo específico, navegue pela lista ou utilize a tecla ‘L’ para pesquisar pelo nome. Para finalizar o processo, pressione ‘k’, insira o ID do processo e o sinal de término, e pressione ‘ENTER’. Para sair do `top`, pressione ‘q’.

    O comando `top` é completo, mas pode ser complexo para iniciantes. O comando `htop`, por sua vez, oferece uma interface mais amigável, além de exibir as informações de maneira mais organizada. Ele não vem pré-instalado na maioria das distribuições, sendo necessária a instalação através do seguinte comando:

    sudo apt install -y htop

    Para usar o `htop`, insira:

    htop

    Para finalizar um processo, selecione-o, pressione ‘F9’ e ‘ENTER’. Para pesquisar, pressione ‘F3’, digite o nome e pressione ‘ENTER’. Depois, pressione ‘F9’ e ‘ENTER’ para finalizar.

    Finalizando Processos via Monitor do Sistema no Linux

    Para quem prefere interfaces gráficas, o Linux oferece o Monitor do Sistema. Para usá-lo, abra o aplicativo no menu e siga os seguintes passos:

    1. Ao abrir o Monitor do Sistema, você verá três guias: Processos, Recursos e Sistema de Arquivos. Vá para a guia “Processos”. Aqui, você verá todos os processos em execução. Use “CTRL+F” para buscar por um nome de processo. Clique no nome do processo desejado e selecione “Finalizar Processo”.

    2. Um diálogo de confirmação será exibido. Clique no botão vermelho “Finalizar processo” para encerrar o processo no Linux.

    Perguntas Frequentes

    Como parar todos os processos no Linux?

    Para parar todos os processos de um usuário específico (exceto login shell, init e processos do kernel), utilize o comando `pkill` ou `killall`:

    pkill -u

    killall -u

    Para finalizar todos os processos de todos os usuários, incluindo o sistema init, pressione as teclas ‘ALT + Prt Sc + o’.

    É seguro encerrar um processo?

    Finalizar processos não essenciais ou processos de usuário que consomem muita memória é seguro e libera recursos para outros processos. No entanto, certifique-se de não eliminar um processo essencial do sistema operacional.

    O que são processos em segundo plano no Linux?

    Processos em segundo plano são executados sem a necessidade da instância de shell ou intervenção do usuário. Eles podem ser visualizados através dos comandos `top`, `htop`, `ps`, etc.

    O que é um processo zumbi?

    Um processo zumbi é um processo que foi finalizado pelo usuário, mas ainda ocupa memória.

    O que o atalho “CTRL + Z” faz no Linux?

    O atalho “CTRL + Z” envia o sinal SIGTSTP, que suspende o processo e o envia para o segundo plano. Um processo suspenso no segundo plano não pode ser finalizado até que seja trazido de volta para o primeiro plano.

    Finalize Processos no Linux com Facilidade

    Finalizar processos que consomem muita memória é uma habilidade crucial para todo usuário. Este artigo explorou diversos métodos para finalizar processos no Linux, incluindo comandos como `killall` e `pkill`, além dos métodos gráficos. Também foi detalhado o uso de ferramentas como `top` e `htop`. Se você encontrar dificuldades ao usar essas ferramentas, compartilhe sua dúvida nos comentários abaixo.