Linux Kill Numbers

Linux Kill Numbers
Este tutorial explica o que são os sinais de matança do Linux e como usá -los para interromper, encerrar, suspender e continuar processos.

O que são sinais de matar Linux?

Os sinais de morte permitem interação entre diferentes processos. Os sinais concretamente são notificações de eventos enviadas aos processos principalmente para interromper, encerrar, matar ou suspender processos (é por isso que usamos o termo "matar"). Os sinais podem ser enviados por processos ou pelo kernel, e normalmente são enviados quando uma anomalia ou condição excepcional requer processamento especial, ou quando um usuário interrompe ou encerra um processo manualmente (e.g., Ao pressionar Ctrl+C),

Quando um sinal é enviado para um processo, esse sinal ou notificação pode atender a uma ação padrão como uma resposta ou pode ser manuseada por um manipulador de sinal. Um manipulador de sinal é um código personalizado do programa cujo processo recebeu o sinal, que define o comportamento do processo quando o sinal é recebido (exceto sinais Sigkill e Sigstop, que não podem ser manuseados, ignorados ou bloqueados).

Quando o sinal é enviado, as ações padrão que podem ocorrer são as seguintes:

  • Prazo: O processo é encerrado.
  • Ign: O sinal é ignorado sem afetar o processo.
  • Essencial: Um arquivo de coro de despejo é criado.
  • Parar: O processo está parado.
  • Cont: O processo recomenda após ser parado.

Dependendo do sinal que algumas dessas ações podem ocorrer, o programa também pode conter um manipulador de sinal para executar a ação adequada.

Resumido: os sinais são mensagens entregues aos processos notificando -lhes um evento ocorreu.

Sinais disponíveis:

Para listar todos os nomes e números de sinais do seu sistema, você pode usar o comando Kill seguido pelo sinalizador -l, como mostrado abaixo.

matar -l

Como você pode ver, existem 64 sinais, provavelmente os mais conhecidos por todos nós é o número 9 (Sigkill) usado para encerrar processos, incluindo processos filhos, imediatamente.

  • Sigkill (9): O sinal Sigkill é usado para matar ou encerrar processos imediatamente. Os sinais de Sigkill não podem ser manuseados, ignorados ou parados.
  • Sigstop (19): Este sinal é parar ou pausar processos que podem ser retomados posteriormente.
  • Sigcont (18): O sinal SigCont é usado para retomar processos parados ou parados.

Como usar sinais de matar:

A sintaxe correta para enviar sinais é:

matar <-SignalName>

ou

matar <-SignalNumber>

Você pode substituir o IR pelos nomes ou números que obtivemos anteriormente ao executar o comando Kill -l. O PID é o ID do processo que você pode aprender usando o comando PS, conforme mostrado nas seguintes instruções.

Para iniciar a seção prática deste tutorial, vamos tentar o Sigstop e Sigcont para pausar um processo e depois retomar.
Para o primeiro exemplo, criei um pequeno linuxhintSignal que imprime que imprime “Linuxhint.com”Como mostrado na captura de tela abaixo.

Para enviar um sinal para o processo, antes que eu precise aprender seu PID. Para ver o ID do processo (PID), você precisa executar o ps comando. No meu caso, sou eu quem executou o processo, então eu uso o ps comando seguido pelo -você Bandeira para mostrar apenas meus processos.

Observação: Para obter mais instruções no comando PS, leia usando o comando ps no linux.

Como você pode ver, o PID da corrida LinuxhintSignal O script é 16182.

A captura de tela a seguir mostra dois terminais; O terminal certo mostra a entrega do sinal Sigstop para processar 16182. O terminal esquerdo mostra como o processo é interrompido quando eu envio o sinal.

matar -Sigstop

Como você pode ver no terminal certo, o processo foi interrompido corretamente.

Você precisa enviar o sinal SigCont para retomar a execução do processo, conforme mostrado nas capturas de tela abaixo.

Kill -sigcont

Como você pode ver, o processo foi retomado.

Você pode obter o mesmo resultado substituindo os nomes de sinais para seus números. O exemplo a seguir repete o cenário anterior, mas desta vez está definindo sinais por seus números.

O exemplo a seguir também mostra como a Sigkill é entregue no processo 17721 para pausar. Desta vez, em vez de especificar o nome do sinal, especifiquei o número do sinal retornado pelo matar -l comando, neste caso, 19 para o sinal Sigstop.

Mate -19

A captura de tela a seguir mostra como especificar o sinal SigCont, usando também seu número em vez de seu nome.

Mate -18

Como você pode ver, o resultado é o mesmo ao usar o nome ou número do sinal.

Como dito anteriormente, o sinal Sigkill é usado para encerrar totalmente um processo; É provavelmente o sinal mais usado pelos usuários.

Como você pode ver no exemplo abaixo, no qual Sigkill é implementado com seu número (9), o script foi totalmente encerrado ou morto.

Mate -9

Outros sinais importantes:

  • Sigint: Este sinal é entregue quando o usuário solicita a interrupção do processo (e.g., Ctrl+C).
  • Igtterm: O sinal sigterm é entregue para solicitar uma terminação de processo, mas apenas para solicitar e não rescindir. Ao contrário de Sigkill ou Sigstop, esse sinal pode ser manuseado, bloqueado ou ignorado.
  • SigilL: Este sinal é usado para encerrar os processos como a causa de um erro como operação ou erros de execução. Este sinal não pode ser ignorado.
  • Sigchld: Usado para notificar os processos pais em eventos de processos infantis.
  • Sighup: Este sinal é acionado quando a conexão é interrompida abruptamente.
  • Sigpipe: Este sinal é enviado para processos tentando escrever para um cano sem uma ponta de leitura ou que não pode ser lida.
  • Sigquit: Este sinal é semelhante ao SIGINT, mas produz um depósito de núcleo.

Conclusão:

Usar sinais de Linux para matar, parar, pausar processos, entre outras funções, é um conhecimento básico que qualquer usuário do Linux deve segurar. O conhecimento profundo dos sinais é especialmente relevante para os programadores que devem garantir que os manipuladores de sinais não produzam efeitos indesejados no sistema. Como você pode ver, existem dezenas de sinais disponíveis; Este tutorial se concentrou apenas nos mais comuns. Você pode obter mais informações sobre sinais Linux em https: // www.gnu.org/software/libc/manual/html_node/standard-signals.html.

Obrigado por ler o Linux Dica; Continue nos seguindo para mais dicas e tutoriais do Linux.