Skip to content

Instantly share code, notes, and snippets.

@gsavovski
Last active August 29, 2015 14:08
Show Gist options
  • Save gsavovski/ecb7c32e4fac13766baf to your computer and use it in GitHub Desktop.
Save gsavovski/ecb7c32e4fac13766baf to your computer and use it in GitHub Desktop.
Use signal.Notify to catch signals
package main
import (
"log"
"os"
"os/signal"
"syscall"
"time"
)
func main() {
log.Println("Started program Signals")
signalChannel := make(chan os.Signal, 2)
signal.Notify(signalChannel, os.Interrupt, syscall.SIGTERM)
i := 0
for {
log.Println("In for loop")
i += 1
time.Sleep(1 * time.Second)
log.Println("Slept for: ", i)
sig := <-signalChannel
switch sig {
case os.Interrupt:
log.Println("Cought SIGING: ", sig)
case syscall.SIGTERM:
log.Println("Cought SIGTERM: ", sig)
default:
log.Println("Default:.", sig)
}
time.Sleep(2 * time.Second)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment