Sobes.tech
Junior — Middle

¿Qué efecto tiene la señal SIGHUP en un proceso en ejecución en el sistema?

sobes.tech AI

Respuesta de la IA

La señal SIGHUP (Signal Hang UP) originalmente se enviaba al terminal cuando se interrumpía la conexión (por ejemplo, al cerrar el terminal). Para el proceso, esto significa que el terminal de control fue desconectado.

En los sistemas modernos, SIGHUP se usa a menudo para:

  • Reiniciar la configuración del proceso sin detenerlo.
  • Terminar el proceso (si no maneja la señal).

En Go, se puede interceptar esta señal usando el paquete os/signal y realizar las acciones necesarias, por ejemplo, recargar la configuración:

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("Recibido SIGHUP: recargando configuración")
                // Aquí la lógica de recarga
            }
        }
    }()

    // Trabajo principal del programa
    select {}
}

De esta manera, SIGHUP sirve como una señal para notificar al proceso que necesita actualizar la configuración o terminar correctamente.