85 lines
1.3 KiB
Go
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)
|
|
}
|
|
}
|