Como matar um processo de corrida no Linux
- 2196
- 6
- Leroy Lebsack
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
Requisitos de software e convenções usadas
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 SSHObtenha 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.
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 -lUma 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
- « Como verificar e monitorar a utilização da CPU no Linux
- Como atualizar o Debian 9 Stretch para Debian 10 Buster »