Files
cmp-go-snippet/cmpSnipper/cmpSnipperSignal.go
2024-01-26 07:11:35 +12:00

85 lines
1.3 KiB
Go

package cmpSnipper
import (
"os"
"os/signal"
"syscall"
)
func (app *App) WaitSignal(term chan bool) {
var sigreq = make(chan os.Signal, 1)
for true {
signal.Notify(sigreq)
sigrcv := <-sigreq
// app.Log("Got signal: %s", sigrcv)
if sigrcv == syscall.SIGTERM {
term <- true
// continue
return
}
if sigrcv == syscall.SIGINT {
term <- true
// continue
return
}
if sigrcv == syscall.SIGQUIT {
term <- true
// continue
return
}
if sigrcv == syscall.SIGUSR1 {
app.Log("Got signal: %s", sigrcv)
continue
}
if sigrcv == syscall.SIGUSR2 {
app.Log("Got signal: %s", sigrcv)
app.Log("Rand 4d: %d", app.Rand4d)
continue
}
// 1) SIGHUP
// 2) SIGINT
// 3) SIGQUIT
// 4) SIGILL
// 5) SIGTRAP
// 6) SIGABRT
// 7) SIGBUS
// 8) SIGFPE
// 9) SIGKILL
// 10) SIGUSR1
// 11) SIGSEGV
// 12) SIGUSR2
// 13) SIGPIPE
// 14) SIGALRM
// 15) SIGTERM
// 16) SIGSTKFLT
// 17) SIGCHLD
// 18) SIGCONT
// 19) SIGSTOP
// 20) SIGTSTP
// 21) SIGTTIN
// 22) SIGTTOU
// 23) SIGURG
// 24) SIGXCPU
// 25) SIGXFSZ
// 26) SIGVTALRM
// 27) SIGPROF
// 28) SIGWINCH
// 29) SIGIO
// 30) SIGPWR
// 31) SIGSYS
app.Log("Got signal: %s", sigrcv)
}
}