Categories: Tecnologia

Como interromper processos do terminal Linux

Fatmawati Achmad Zaenuri / Shutterstock.com

Matar um processo às vezes é a única maneira de se livrar dele. Apesar do nome áspero, “matar” um processo significa apenas “forçá-lo a encerrar”. Veja como fazer isso na linha de comando do Linux ou macOS.

O que é um processo?

Programas em execução como o seu navegador da web, processos em segundo plano associados ao seu ambiente de área de trabalho e serviços do sistema Linux são todos processos.

Você pode agrupar processos em dois grupos:

  • Os processos de primeiro plano são aqueles que foram iniciados ou iniciados por um usuário. Eles podem estar em uma janela de terminal ou podem ser um aplicativo gráfico.
  • Processos em segundo plano são todos os processos iniciados automaticamente e não têm nenhuma interação com os usuários. Eles não esperam contribuições dos usuários nem apresentam resultados ou saídas para eles. Processos em segundo plano são coisas como serviços e daemons.

Se os processos de primeiro plano são a frente da equipe do teatro e dos atores, os processos de segundo plano são a equipe de bastidores “nos bastidores”.

Quando os processos se comportam incorretamente ou funcionam mal, eles podem consumir muito tempo da CPU, consumir sua RAM ou entrar em um loop computacional rígido e não responder. Os aplicativos gráficos podem se recusar a responder aos cliques do mouse. Os aplicativos de terminal podem nunca retornar você ao prompt de comando.

A Resposta Humana

“Matar” um processo significa apenas “forçar o processo a parar”. Isso pode ser necessário se o processo se recusar a responder.

Linux fornece os kill, pkille killallcomandos para permitir que você faça exatamente isso. Esses comandos podem ser usados ​​com qualquer tipo de processo, gráfico ou linha de comando, primeiro plano ou plano de fundo.

O comando matar

Para usar kill, você deve saber o ID do processo (PID) do processo que deseja encerrar. O pscomando pode ser usado para encontrar o PID de um processo.

Para pspesquisar todos os processos, use a opção -e (todos os processos). Canalizar a saída lessé aconselhável, vai haver bastante disso. Digite ps, um espaço -e,, um espaço, |(uma barra vertical), outro espaço e digite less. Pressione Enter para executar o comando.

ps -e | Menos

Isso lhe dará uma lista de processos semelhante à captura de tela abaixo. Você pode pesquisar para a frente lessusando a /tecla e pode pesquisar para trás usando a ?tecla.

Em casa, no processo que você está interessado, canalizar a saída do psmeio grepe especificar o nome, ou parte do nome-do processo.

ps -e | grep shutter

Depois de localizar o PID do processo que deseja encerrar, passe-o para o killcomando como parâmetro. Para encerrar o shutterprocesso identificado pelo comando anterior, use este comando:

matar 2099

O killcomando é um assassino silencioso – ele não fornece nenhum feedback se for bem-sucedido.

O Comando pkill

O pkillcomando permite eliminar um processo – ou processos – pelo nome. Você não precisa identificar o processo pelo PID. Para usar, pkillvocê fornece um termo de pesquisa que pkillusa para verificar a lista de processos em execução. Os processos de correspondência são encerrados. Portanto, você precisa ter certeza de que o termo de pesquisa foi escrito corretamente.

Como rede de segurança, você pode usar o pgrepcomando antes de usar o pkillcomando. O pgrepcomando também aceita um termo de pesquisa. Ele irá listar o PID de cada processo que corresponde ao termo de pesquisa. Isso é seguro porque pgrepnão emitirá nenhum sinal de eliminação para os processos e, se você digitar incorretamente o termo de pesquisa, não eliminará outro processo por engano. Você pode verificar se o termo de pesquisa foi pensado corretamente antes de passá-lo para pkill. Ambos pkille pgreptratam o termo de pesquisa da mesma maneira. Seu tratamento é tão semelhante que eles compartilham a mesma página de manual .

Vamos supor que haja um processo com “subq” em seu nome. Usaremos o ps -u dave | grepcomando para dar uma olhada por trás da cortina. Você pode ver que “subq” corresponderá a esse processo e apenas a esse processo. Isso foi só para você ver o nome completo do processo.

ps -u dave | grep subq

Vamos supor que nosso usuário não tenha feito isso; tudo o que eles sabem é que o nome do processo contém a substring “subq.” Eles costumam pgrepverificar se há apenas uma correspondência para o termo de pesquisa. Eles então usam esse termo de pesquisa com pkill.

pgrep subq
pkill subq

Você pode usar pkillpara matar vários processos de uma vez. Aqui, o usuário executa pgreppara verificar quantos processos o Chrome lançou. Eles costumam pkillmatar todos eles. Eles então verificam pgrepse todos foram removidos.

pgrep chrome
pkill chrome
pgrep chrome

Se vários processos com o mesmo nome estiverem em execução, mas você não quiser eliminá-los todos, você pode usar pgrepa opção -f(linha de comando) para identificar qual processo é qual. Um exemplo simples seria dois pingprocessos. Você quer matar um deles, mas não o outro. Você pode usar suas linhas de comando para distingui-los. Observe o uso de aspas para quebrar o parâmetro da linha de comando.

pgrep -f "ping 192.168.4.22"
pkill -f "ping 192.168.4.22"

O comando killall

Aviso : Nos sistemas operacionais Solaris e OpenIndiana, o killallcomando matará todos os processos que pertencem a você . Se você for root ou se tiver emitido,  sudo killallvocê reiniciará seu computador! Durante a pesquisa para este artigo, esse comportamento foi confirmado com a versão mais recente do OpenIndiana Hipster 2018.10.

O killallcomando opera de maneira semelhante ao pkillcomando, mas com uma diferença específica. Em vez de passar um termo de pesquisa para o comando, você deve fornecer o nome exato do processo.

Você não pode fornecer uma correspondência parcial para um nome de processo; você deve fornecer o nome completo do processo, conforme mostrado:

killall shutt
obturador killall

A opção -y(mais jovem que) permite eliminar processos que estão em execução há menos de um período especificado. O período é dado em números seguidos por uma destas unidades:

  • s (segundos)
  • m (minutos)
  • h (horas)
  • d (dias)
  • w (semanas)
  • M (meses, nota, “M” maiúsculo)
  • y (anos)

Para encerrar um processo chamado anaque acabou de ser iniciado e deixar todas as instâncias mais antigas de anaexecução, você pode usar os seguintes parâmetros com  killall, se tiver reagido em dois minutos:

killall -y 2m ana

A opção -o (mais antigo que) permite eliminar processos que estão em execução por mais tempo do que um período especificado. Este comando eliminará todas as sshconexões que estão em execução por mais de um dia:

killall -o 1d sshd

Não seja muito feliz no gatilho

Esses comandos permitirão que você identifique e finalize processos incorretos com precisão e segurança corretamente.

Sempre seja cauteloso. Primeiro, certifique-se de que o processo que você está prestes a matar é realmente o que você deseja. Em segundo lugar, verifique novamente – seja cuidadoso e certifique-se de que o processo-alvo seja aquele que você deseja encerrar. Prossiga com o encerramento do processo quando estiver satisfeito.

maisroot

Recent Posts

O novo aplicativo “PC Manager” da Microsoft se parece muito com o CCleaner

Muitos aplicativos de limpeza estão disponíveis para Windows ao longo dos anos, mas hoje em…

1 ano ago

Como reiniciar um PS4

Seu PlayStation 4 está congelado? Seus jogos favoritos continuam travando? Reiniciar seu PS4 pode resolver…

1 ano ago

Veja por que as reticências são tão assustadoras ao enviar mensagens de texto…

A popularidade das mensagens de texto significou aprender uma forma totalmente nova de comunicação. Você…

1 ano ago

O telescópio James Webb acaba de capturar os “Pilares da Criação”

A foto dos "Pilares da Criação" tirada pelo Telescópio Espacial Hubble é uma das fotos…

1 ano ago

Você poderá baixar o Proton Drive mais cedo do que pensa

O Proton Drive saiu de seu estágio beta há algumas semanas, mas o aplicativo real…

1 ano ago

Como aumentar o zoom no Photoshop

Para ver suas fotos mais de perto ou para uma edição precisa , você pode…

1 ano ago