É 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 `
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:
- D – Sono ininterrupto.
- R – Em execução.
- S – Dormindo.
- T – Parado.
- Z – Zumbi.
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.