Junior — Middle
What impact does the SIGHUP signal have on a running process in the system?
sobes.tech AI
Answer from AI
The SIGHUP (Signal Hang UP) signal was originally sent to a terminal when the connection was lost (for example, when closing the terminal). For a process, this means that the controlling terminal was disconnected.
In modern systems, SIGHUP is often used for:
- Reloading a process's configuration without stopping it.
- Terminating a process (if it does not handle the signal).
In Go, you can catch this signal using the os/signal package and perform necessary actions, such as reloading settings:
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("Received SIGHUP: reloading configuration")
// Reload logic here
}
}
}()
// Main program work
select {}
}
Thus, SIGHUP serves as a signal to notify the process to update its configuration or terminate gracefully.