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:
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.
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:
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.