Skip to content

Signals

The os/signal package allows Go programs to receive Unix signals (e.g., SIGINT, SIGTERM). This is used for graceful shutdown.

Catch Ctrl+C and print a message before exiting.

package main
import (
"fmt"
"os"
"os/signal"
"syscall"
)
func main() {
sigs := make(chan os.Signal, 1)
signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
fmt.Println("Waiting for signal...")
s := <-sigs
fmt.Println("Received signal:", s)
}
Terminal window
Waiting for signal...
^CReceived signal: interrupt