Sobes.tech
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.