Introdução
Neste laboratório, você aprenderá como terminar processos no Linux usando os comandos kill, killall e pkill. Esses comandos são essenciais para gerenciar processos em execução e podem ser usados para parar aplicações que não respondem ou liberar recursos do sistema.
Ao final deste laboratório, você será capaz de:
- Usar o comando
killpara terminar um processo específico - Usar o comando
killallpara terminar múltiplos processos por nome - Usar o comando
pkillcomo alternativa aokillall
Entendendo IDs de Processos e Sinais
Antes de começarmos a terminar processos, é importante entender dois conceitos-chave: IDs de Processos (PIDs) e sinais.
Abra um terminal em sua VM Ubuntu. Você deve estar no diretório
/home/labex/projectpor padrão. Se não tiver certeza, você sempre pode verificar seu diretório atual digitandopwde pressionando Enter.Vamos começar executando um processo simples em segundo plano. Digite o seguinte comando:
sleep 1000 &Este comando inicia um processo que irá dormir por 1000 segundos e o executa em segundo plano. O
&no final diz ao shell para executar o comando em segundo plano, permitindo que você continue usando o terminal.Para ver os processos em execução, use o comando
ps:ps aux | grep sleepEste comando mostra todos os processos em execução (
ps aux) e, em seguida, filtra a saída para mostrar apenas as linhas contendo "sleep" (grep sleep).Você deve ver uma saída semelhante a esta:

O número na segunda coluna é o ID do Processo (PID). Usaremos isso para terminar o processo mais tarde.
O Linux usa sinais para se comunicar com os processos. Os sinais mais comuns para terminar processos são:
- SIGTERM (15): Termina o processo de forma graciosa. Este é o sinal padrão enviado pelo comando
kill. - SIGKILL (9): Mata o processo à força. Isso deve ser usado como último recurso quando SIGTERM não funciona.
- SIGTERM (15): Termina o processo de forma graciosa. Este é o sinal padrão enviado pelo comando
Agora que entendemos PIDs e sinais, estamos prontos para passar para o uso do comando kill.
Usando o Comando kill
O comando kill é usado para enviar um sinal a um processo específico, identificado por seu PID. Por padrão, ele envia o sinal SIGTERM, que solicita que o processo termine de forma graciosa.
Vamos terminar o processo sleep que iniciamos anteriormente. Primeiro, encontre seu PID usando o comando
ps:ps aux | grep sleepAnote o PID do processo sleep. Será um número na segunda coluna da saída.
Agora, use o comando
killpara terminar o processo:kill <PID>Substitua
<PID>pelo ID do Processo real que você anotou. Por exemplo, se o PID for 1234, você digitarákill 1234.Verifique se o processo ainda está em execução:
ps aux | grep sleepVocê não deve mais ver o processo sleep na saída, exceto pelo próprio comando
grep.
Se o processo ainda estiver em execução (o que é improvável para um comando sleep simples, mas possível para aplicações mais complexas), você pode usar um sinal mais forte:
kill -9 <PID>

Isso envia o sinal SIGKILL, que termina o processo à força. Tenha cuidado com o SIGKILL, pois ele não permite que o processo faça a limpeza, o que pode levar à perda de dados ou outros problemas em aplicações mais complexas.
Usando o Comando killall
O comando killall permite que você termine processos por nome, o que pode ser mais conveniente do que usar PIDs, especialmente quando você tem múltiplas instâncias do mesmo programa em execução.
Inicie múltiplos processos sleep:
sleep 2000 & sleep 2000 & sleep 2000 &Este comando inicia três processos sleep separados, cada um executando por 2000 segundos em segundo plano.
Verifique se os processos estão em execução:
ps aux | grep sleepVocê deve ver três processos sleep listados.
Agora, use o comando
killallpara terminar todos os processos sleep:sudo killall sleepUsamos
sudoaqui porquekillallpode precisar de privilégios elevados para terminar processos iniciados por outros usuários ou processos do sistema. Você pode ser solicitado a inserir sua senha.Verifique se os processos foram terminados:
ps aux | grep sleepVocê não deve mais ver nenhum processo sleep na saída, exceto pelo próprio comando
grep.
Se você receber um erro "Operação não permitida", isso significa que você não tem as permissões necessárias para matar certos processos. Nesse caso, usar sudo como mostrado acima deve resolver o problema.
Usando o Comando pkill
O comando pkill é outra maneira de terminar processos por nome, semelhante ao killall. É particularmente útil quando você deseja terminar processos com base em correspondências parciais de nomes.
Inicie mais alguns processos sleep:
sleep 3000 & sleep 3000 & sleep 3000 &Isso inicia mais três processos sleep, cada um executando por 3000 segundos em segundo plano.
Use o comando
pkillpara terminar esses processos:sudo pkill sleepAssim como com
killall, usamossudopara garantir que tenhamos as permissões necessárias para terminar todos os processos correspondentes.Verifique se os processos foram terminados:
ps aux | grep sleepVocê não deve ver nenhum processo sleep na saída, exceto pelo próprio comando
grep.
A principal diferença entre pkill e killall é que pkill pode corresponder a um nome de processo parcial. Por exemplo, pkill fire mataria os processos firefox e firebird. Isso pode ser poderoso e perigoso, então sempre verifique duas vezes seus comandos pkill antes de executá-los.
Praticando com Aplicações Reais
Agora que você aprendeu como usar kill, killall e pkill, vamos praticar com uma aplicação real. Usaremos o Firefox como exemplo, você deve praticar esta etapa no ambiente de desktop.

Inicie o navegador web Firefox:
firefox &Este comando inicia o Firefox em segundo plano. Você deve ver a janela do Firefox aberta em sua área de trabalho.
Use o comando
pspara encontrar o PID do Firefox:ps aux | grep firefoxAnote o PID do processo principal do Firefox. Ele geralmente será o primeiro processo Firefox listado.
Use o comando
killpara terminar o Firefox:kill <PID>Substitua
<PID>pelo ID do Processo real do Firefox que você anotou.Se o Firefox não fechar (o que é possível, pois algumas aplicações capturam o sinal SIGTERM), tente usar o sinal SIGKILL:
kill -9 <PID>Lembre-se, SIGKILL deve ser usado como último recurso, pois não permite que a aplicação salve seu estado ou faça uma limpeza adequada.
Alternativamente, você pode usar
killalloupkill:sudo killall firefoxou
sudo pkill firefoxEsses comandos terminarão todos os processos Firefox de uma vez, o que pode ser mais conveniente do que matar processos um por um.
Lembre-se, terminar aplicações à força pode levar à perda de dados, por isso é sempre melhor fechar as aplicações normalmente quando possível. Esses comandos devem ser usados quando uma aplicação não responde ou quando você precisa liberar rapidamente recursos do sistema.
Resumo
Parabéns! Você concluiu com sucesso este laboratório sobre como terminar processos no Linux. Você aprendeu como:
- Usar o comando
killpara terminar um processo específico por seu PID - Usar o comando
killallpara terminar múltiplos processos por nome - Usar o comando
pkillcomo alternativa aokillall - Aplicar esses comandos tanto a processos simples em segundo plano quanto a aplicações reais
Lembre-se, embora esses comandos sejam ferramentas poderosas para gerenciar processos, use-os com cautela. Terminar processos críticos do sistema pode levar à instabilidade do sistema. Sempre verifique o processo que você está terminando antes de usar esses comandos.
À medida que você continua sua jornada no Linux, você descobrirá que essas habilidades de gerenciamento de processos são inestimáveis para manter um sistema funcionando sem problemas e solucionar problemas. Continue praticando esses comandos para se sentir mais confortável com o gerenciamento de processos no Linux!



