Sobes.tech
Junior — Middle

Aký vplyv má signál SIGHUP na bežiaci proces v systéme?

sobes.tech AI

Odpoveď od AI

Signál SIGHUP (Signal Hang UP) bol pôvodne posielan terminálu pri prerušení spojenia (napríklad pri zatvorení terminálu). Pre proces to znamená, že riadiaci terminál bol odpojený.

V moderných systémoch sa SIGHUP často používa na:

  • Reštartovanie konfigurácie procesu bez jeho zastavenia.
  • Ukončenie procesu (ak s týmto signálom nepracuje).

V jazyku Go je možné tento signál zachytiť pomocou balíka os/signal a vykonať potrebné akcie, napríklad, znovu načítať nastavenia:

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("Prijat SIGHUP: znovu načítanie konfigurácie")
                // Logika znovu načítania
            }
        }
    }()

    // Hlavná práca programu
    select {}
}

Týmto spôsobom slúži SIGHUP ako signál na oznámenie procesu o potrebe aktualizovať konfiguráciu alebo správne ukončiť.