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) } }