Como matar um processo de corrida no Linux

Como matar um processo de corrida no Linux

Tudo o que está em execução em um sistema Linux - um serviço, script ou qualquer outra coisa - é considerado um “processo.”Se você precisar terminar um processo de execução no Linux, o matar comando certamente fará o trabalho.

Neste guia para administradores do Linux, examinaremos o matar Comando Linux e como usar suas várias opções para terminar, ou "Kill", um processo de corrida no Linux.

Neste tutorial, você aprenderá:

  • Como funciona o comando de matar?
  • Como ver quais processos estão executando
  • Como matar um processo por pid
  • Como matar um processo que se recusa a fechar
  • Como matar um processo pelo nome
Como matar um processo de corrida no Linux

Requisitos de software e convenções usadas

Requisitos de software e convenções de linha de comando Linux
Categoria Requisitos, convenções ou versão de software usada
Sistema Ubuntu, Debian, Centos, Rhel, Fedora
Programas Nenhum
Outro Acesso privilegiado ao seu sistema Linux como raiz ou através do sudo comando.
Convenções # - requer que os comandos Linux sejam executados com privilégios root diretamente como usuário root ou por uso de sudo comando
$ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular

Como funciona o comando de matar?

Com um nome como "Kill", você pode esperar que esse utilitário seja usado para terminar imediatamente um processo. Enquanto isso é verdade, matar apenas funciona dessa maneira quando usado com determinadas opções. Por padrão, matar tentarei interromper um processo o mais graciosamente possível.

Em termos técnicos, matar envia a Sigterm sinalize para o processo especificado, e isso instrui o processo a desligar. É uma maneira educada de encerrar um processo em execução e dá o tempo de aplicação ou serviço para encerrar as coisas primeiro - como terminar de escrever arquivos de log, fechar conexões abertas que foram geradas pelo processo, etc.



O único problema com isso é que um programa teimoso pode ignorar o Sigterm sinal. Isso ocorre especialmente em um processo congelado ou “desligado." No entanto, matar pode ser usado para enviar muitos sinais diferentes para um processo e pode até forçar os mais teimosos a fechar com um Sigkill sinal. Vamos analisar essas opções na próxima seção.

O importante a retirar essas informações é que, quando possível. Matando imediatamente um serviço com um Sigkill O sinal é eficaz sempre e fornecerá resultados instantâneos, mas pode causar problemas futuros, pois o processo não teve a chance de desligar corretamente.

Como ver quais processos estão executando

Todo processo no Linux recebe um "ID de processo" exclusivo, comumente abreviado como PID No terminal Linux. Às vezes, é necessário conhecer o PID de um processo para acabar. Para ver uma lista de processos em execução e seus números de PID correspondentes, use o ps comando:

# ps -e 

Isso pode produzir muita saída, porque mesmo uma nova instalação de Linux pode ter alguns processos de execução, por isso geralmente é melhor colocar esse comando para grep ou mais.

Para uma visão mais gerenciável:

# ps -e | Mais -15 


Ou procurar um processo específico (SSH neste exemplo):

# ps -e | Grep SSH 
Obtenha o PID de um processo de corrida

Outra maneira útil de ver uma lista de processos em execução e seus PIDs é com o principal comando. Às vezes, isso é ainda mais útil, pois também mostra quantos recursos do sistema estão sendo usados ​​pelos processos.

Veja o PID com comando superior

Como matar um processo por pid



Depois de determinar o PID do processo que deseja terminar, você pode especificá -lo como um argumento para o matar comando. Por exemplo, para encerrar um processo com um PID de 1234:

# Kill 1234 

Este comando envia um Sigterm sinalizar e deve ser capaz de desligar a maioria dos processos em um segundo ou dois. Lembre -se de que você pode usar o ps comando novamente para verificar se o processo fechou com sucesso.

# ps -e | Grep 1234 

Como matar um processo que se recusa a fechar

Se você encontrou um processo teimoso que está se recusando a fechar, você pode emitir um Sigkill sinal com o -9 opção em matar.



# Kill -9 1234 

Lembre -se de usar essa opção com moderação, pois não é a maneira ideal de terminar um processo (mas às vezes você precisa).

Normalmente, Sigterm e Sigkill são provavelmente os únicos dois sinais que você precisará usar, mas há muitos outros que você pode enviar com o matar comando. O comando a seguir produzirá uma lista completa:

# kill -l 
Uma lista dos sinais que matam pode enviar

É bom pelo menos estar ciente das outras opções, pois alguns programas ou scripts podem recomendar seu uso.

Como você pode ver na saída, Sigkill está listado em #9, e é por isso que o -9 Switch envia o Sigkill sinal. Especifique um número diferente para enviar seu respectivo sinal para um processo.



Como matar um processo pelo nome

Há uma maneira mais rápida de terminar um processo do que ter que procurar seu PID toda vez. Use o pkill comando e o nome do processo que você deseja matar. Por exemplo, veja como matar SSH:

# pkill ssh 

O pkill O comando é capaz de enviar sinais diferentes, assim como o regular matar comando:

# pkill -9 ssh 

Não se preocupe em obter o nome exato do processo também. Este comando matou um processo chamado ssh-agent que estava em execução em nosso sistema.



Há uma desvantagem em usar pkill em vez de matar. Digamos que você tenha dois processos SSH em execução, 'ssh-server' e 'ssh-agent'. Emitindo o comando acima com pkill vai acabar com esses dois processos, mesmo que você apenas pretenda acabar com o ssh-agent.

Também é um problema se você tiver várias instâncias de um script em execução, desde que disse pkill Para terminar esse script vai terminar todas as instâncias do script. Então, novamente, às vezes esse comportamento pode ser preferível. Se você precisar do controle mais granular, lembre -se de optar pelo matar comando em vez disso.

Conclusão

Neste artigo, vimos como matar qualquer processo em execução em um sistema Linux usando o matar comando. Aprendemos a matar um processo pelo seu PID ou pelo nome, juntamente com os prós e contras de ambos os métodos.

Com conhecimento do matar Comando e as melhores práticas de como usá -lo, você tem mais controle sobre os processos em execução em seu sistema. Isso é particularmente útil para programas que “desligam” e se recusam a fechar às vezes.

Tutoriais do Linux relacionados:

  • Coisas para instalar no Ubuntu 20.04
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Comandos básicos do Linux
  • Como propagar um sinal para os processos filhos de uma festa…
  • Comandos Linux: os 20 comandos mais importantes que você precisa para…
  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Coisas para fazer depois de instalar o Ubuntu 22.04 Jellyfish…
  • Download do Linux
  • Instale Arch Linux na estação de trabalho VMware
  • Como imprimir a árvore do diretório usando o Linux