Na maior parte do tempo, você desejará que um programa termine por seus próprios meios ou, se for um aplicativo gráfico, usando a opção de menu apropriada ou usando a cruz no canto.
De vez em quando um programa irá travar, caso em que você precisará de um método para eliminá-lo. Você também pode querer matar um programa que está sendo executado em segundo plano que você não precisa mais executar.
Este guia fornece um método para eliminar todas as versões do mesmo aplicativo que estão sendo executadas no sistema.
Como usar o comando killall
O comando killall mata todos os processos pelo nome. Isso significa que se você tiver três versões do mesmo programa executando o comando killall, todas as três serão eliminadas.
Por exemplo, abra um programa pequeno como um visualizador de imagens. Agora abra outra cópia do mesmo visualizador de imagens. Para o meu exemplo, escolhi o Xviewer, que é um clone do Eye Of Gnome.
Agora abra um terminal e digite o seguinte comando:
Mate todos
Por exemplo, para matar todas as instâncias do Xviewer, digite o seguinte:
xviewer do killall
Ambas as instâncias do programa que você escolheu para matar serão encerradas agora.
Mate o processo exato
O killall pode produzir resultados estranhos. Bem, aqui está um dos motivos. Se você tiver um nome de comando com mais de 15 caracteres, o comando killall funcionará apenas nos primeiros 15 caracteres. Portanto, se você tem dois programas que compartilham os mesmos 15 primeiros caracteres, ambos os programas serão cancelados, mesmo que você queira apenas matar um.
Para contornar isso, você pode especificar a seguinte opção, que matará apenas arquivos que correspondam ao nome exato.
killall -e
Ignorar caso ao matar programas
Para garantir que o comando killall ignore o nome do programa que você fornece, use o seguinte comando:
killall -I
killall --ignore-case
Matar todos os programas no mesmo grupo
Quando você executa um comando como o seguinte, ele cria dois processos:
ps -ef | Menos
Um comando é para a parte ps -ef que lista todos os processos em execução em seu sistema e a saída é canalizada para o comando less.
Ambos os programas pertencem ao mesmo grupo que é bash.
Para matar os dois programas ao mesmo tempo, você pode executar o seguinte comando:
killall -g
Por exemplo, para matar todos os comandos em execução em um shell bash, execute o seguinte:
killall -g bash
Aliás, para listar todos os grupos em execução, execute o seguinte comando:
ps -g
Receba a confirmação antes de matar programas
Obviamente, o comando killall é um comando bastante poderoso e você não quer matar acidentalmente os processos errados.
Usando o seguinte switch você será perguntado se você tem certeza antes de cada processo ser morto.
killall -i
Mate os processos que estão sendo executados por uma certa quantidade de tempo
Imagine que você está executando um programa e está demorando muito mais do que você esperava.
Você pode matar o comando da seguinte maneira:
killall -o h4
O h no comando acima representa horas.
Você também pode especificar qualquer um dos seguintes:
- s - segundos
- m - minutos
- h - horas
- d dias
- semanas
- M meses
- y - anos
Alternativamente, se você deseja eliminar comandos que apenas começaram a ser executados, você pode usar a seguinte opção:
killall -y h4
Desta vez, o comando killall matará todos os programas em execução por menos de 4 horas.
Não me diga quando um processo não é morto
Por padrão, se você tentar matar um programa que não esteja em execução, receberá o seguinte erro:
programname: nenhum processo encontrado
Se você não quer ser informado se o processo não foi encontrado, use o seguinte comando:
killall -q
Usando expressões regulares
Em vez de especificar o nome de um programa ou comando, você pode especificar uma expressão regular para que todos os processos que correspondam à expressão regular sejam fechados pelo comando killall.
Para usar uma expressão regular, use o seguinte comando:
killall -r
Matar programas para um usuário especificado
Se você quiser matar um programa que está sendo executado por um usuário específico, você pode especificar o seguinte comando:
killall -u
Se você quiser matar todos os processos de um usuário em particular, pode omitir o nome do programa.
Espere por killall para terminar
Por padrão, o killall retornará direto ao terminal quando você executá-lo, mas você poderá forçar o killall a esperar até que todos os processos especificados tenham sido fechados antes de retornar à janela do terminal.
Para isso, execute o seguinte comando:
killall -w
Se o programa nunca morrer, o killall também continuará vivo.
Sinais de Sinais de Sinais
Por padrão, o comando killall envia o sinal SIGTERM para os programas para que eles fechem e este é o método mais limpo para matar programas.
No entanto, existem outros sinais que você pode enviar usando o comando killall e você pode listá-los usando o seguinte comando:
killall -l
A lista retornada será algo assim:
- HUP
- INT
- SAIR
- EU VOU
- ARMADILHA
- ABRT
- IOT
- ÔNIBUS
- FPE
- MATE
- USR1
- SEGV
- USR2
- TUBO
- ALRM
- PRAZO
- STKFLT
- CHLD
- CONT
- PARE
- TSTP
- TTIN
- TTOU
- URG
- XCPU
- XFSZ
- VTALRM
- PROG
- WYNCH
- IO
- PWR
- SYS
- NÃO UTILIZADO
Essa lista é extremamente longa. Para ler sobre o que esses sinais significam, execute o seguinte comando:
homem 7 sinal
Geralmente você deve usar a opção SIGTERM padrão, mas se o programa se recusar a morrer, você pode usar SIGKILL, que força o programa a fechar, embora de forma indigna.
Outras maneiras de matar um programa
Existem 5 outras maneiras de eliminar um aplicativo Linux, conforme destacado no guia vinculado.
No entanto, para poupar o esforço de clicar no link, aqui está uma seção mostrando quais são esses comandos e por que você pode usar esses comandos sobre killall.
O primeiro é o comando kill. O comando killall, como você viu, é ótimo para matar todas as versões do mesmo programa. O comando kill é projetado para matar um processo de cada vez e, portanto, é mais segmentado.
Para executar o comando kill, você precisa conhecer o ID do processo que deseja matar. Para isso, você pode usar o comando ps.
Por exemplo, para encontrar uma versão em execução do Firefox, você pode executar o seguinte comando:
ps -ef | grep firefox
Você verá uma linha de dados com o comando / usr / lib / firefox / firefox no final. No início da linha, você verá seu ID do usuário e o número após o ID do usuário ser o ID do processo.
Usando o ID do processo, você pode matar o Firefox executando o seguinte comando:
matar -9
Outra maneira de matar um programa é usando o comando xkill. Isso geralmente é usado para matar aplicativos gráficos que não se comportam corretamente.
Para matar um programa como o Firefox, abra um terminal e execute o seguinte comando:
xkill
O cursor agora mudará para uma grande cruz branca. Passe o cursor sobre a janela que deseja matar e clique com o botão esquerdo do mouse. O programa sairá imediatamente.
Outra maneira de eliminar um processo é usando o comando top do Linux. O comando top lista todos os processos em execução no seu sistema.
Tudo o que você precisa fazer para matar um processo é pressionar a tecla "k" e inserir o ID do processo do aplicativo que deseja matar.
Anteriormente nesta seção, o comando kill exigia que você encontrasse o processo usando o comando ps e, em seguida, eliminasse o processo usando o comando kill. Esta não é a opção mais simples por qualquer meio.
Por um lado, o comando ps retorna muitas informações que você não precisa. Tudo o que você queria era o ID do processo. Você pode obter o ID do processo mais simplesmente executando o seguinte comando:
pgrep firefox
O resultado do comando acima é simplesmente o ID do processo do Firefox. Agora você pode executar o comando kill da seguinte forma:
mate
(Substituir É realmente mais fácil, no entanto, simplesmente fornecer o nome do programa para pkill da seguinte forma: Finalmente, você pode usar uma ferramenta gráfica como a fornecida com o Ubuntu chamado "System Monitor". Para executar o "System Monitor", pressione a tecla super (tecla Windows na maioria dos computadores) e digite "sysmon" na barra de pesquisa. Quando o ícone do monitor do sistema aparecer, clique nele. O monitor do sistema mostra uma lista de processos. Para finalizar um programa de maneira limpa, selecione-o e pressione a tecla final na parte inferior da tela (ou pressione CTRL e E). Se isso não funcionar, clique com o botão direito do mouse e escolha "Kill" ou pressione CTRL e K no processo que deseja matar.pkill firefox