Junior — Middle
Qual o efeito do sinal SIGHUP no processo em execução no sistema?
sobes.tech IA
Resposta da IA
O sinal SIGHUP (Signal Hang UP) foi originalmente enviado ao terminal quando a conexão era interrompida (por exemplo, ao fechar o terminal). Para o processo, isso significa que o terminal de controle foi desconectado.
Nos sistemas modernos, o SIGHUP é frequentemente usado para:
- Reiniciar a configuração do processo sem pará-lo.
- Encerrar o processo (se ele não tratar o sinal).
Em Go, você pode interceptar esse sinal usando o pacote os/signal e executar as ações necessárias, por exemplo, recarregar as configurações:
import (
"os"
"os/signal"
"syscall"
"fmt"
)
func main() {
sigs := make(chan os.Signal, 1)
signal.Notify(sigs, syscall.SIGHUP)
go func() {
for {
sig := <-sigs
if sig == syscall.SIGHUP {
fmt.Println("SIGHUP recebido: recarregando configuração")
// Lógica de recarregamento
}
}
}()
// Trabalho principal do programa
select {}
}
Dessa forma, o SIGHUP serve como um sinal para notificar o processo sobre a necessidade de atualizar a configuração ou encerrar corretamente.