Skip to content

Como interromper processos usando Linux

3 de maio de 2021

De vez em quando, um programa trava e, nesse caso, você precisa de um método para eliminá-lo. O Linux oferece várias abordagens para programas de encerramento forçado do shell.

Como usar o comando ‘killall’

O Mate todos comando mata todos os processos por nome. Isso significa que se você tiver três versões do mesmo programa em execução, o comando killall mata todas as três. Por exemplo, abra um pequeno programa como um visualizador de imagens. Agora abra outra cópia do mesmo visualizador de imagens. Este exemplo usa o Xviewer, que é um clone do Eye Of Gnome. Abra um terminal e digite o seguinte comando: killall xviewer

Ambas as instâncias do programa fecham.

Mate o processo exato

O comando killall pode produzir resultados estranhos. Se você tiver um nome de comando com mais de 15 caracteres, o comando killall só funcionará nos primeiros 15 caracteres. Se, portanto, você tiver dois programas que compartilham os mesmos primeiros 15 caracteres, ambos os programas serão cancelados, embora você só queira matar um. Para contornar isso, você pode especificar a seguinte opção, que mata apenas os arquivos que correspondem ao nome exato. killall -e

Ignorar caso ao matar programas

Para certificar-se de que o comando killall ignora maiúsculas e minúsculas no nome do programa que você fornece, use o seguinte comando: killall -I
killall –ignore-case

Eliminar todos os programas do 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 é o bash. Para encerrar os dois programas de uma vez, execute o seguinte comando: killall -g

Por exemplo, para encerrar todos os comandos em execução em um shell bash, execute o seguinte: killall -g bash

Para listar todos os grupos em execução, execute o seguinte comando: ps -g

Obtenha a confirmação antes de matar programas

Obviamente, o comando killall é um comando poderoso e você não quer matar acidentalmente os processos errados. Quando você usa a opção a seguir, é perguntado se você tem certeza antes de cada processo ser encerrado. killall -i

Elimine processos que estão em execução por um certo período de tempo

Imagine que você está executando um programa e ele está demorando muito mais do que você esperava. Você pode matar o comando da seguinte maneira: killall -o h4

O h no comando acima significa horas – esse comando mata processos em execução por quatro horas ou mais. Especifique qualquer um dos seguintes marcos de tempo:

  • s: segundos
  • m: minutos
  • h: horas
  • d: dias
  • C: semanas
  • M: meses
  • y: anos

Como alternativa, para eliminar os comandos que apenas começaram a ser executados, use a seguinte opção: killall -y h4

Desta vez, o comando killall elimina todos os programas em execução por menos de 4 horas.

Não me diga quando um processo não está morto

Por padrão, se você tentar matar um programa que não está em execução, receberá o seguinte erro: nome do programa: nenhum processo encontrado

Se você não quiser 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, especifique 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

Eliminar programas para um usuário específico

Para matar um programa pertencente a um usuário específico, use o -você switch: killall -u

Omita o nome do programa para encerrar todos os processos desse usuário.

Espere até que o killall termine

Por padrão, o killall retorna ao terminal quando você o executa, mas você pode forçar o killall a esperar até que todos os processos especificados tenham sido fechados antes de retornar à janela do terminal. Execute o seguinte comando: killall -w

Se o programa nunca morre, então o killall também continua a viver.