今日はとっても簡単なお題なのだけど、ちゃんと理解していないトピックとして、Go 言語でのシグナルのハンドリングについて書いてみたい。 お題 タイマーと、go routine と、シグナルの割り込みのいづれか一番早く発生した内容表示して、プログラムを終了する。シグナルの場合はシグナルの内容を表示する。 シグナルのハンドリング 次のサンプルがほぼすべてになります。 sig := make(chan os.Signal, 1) signal.Notify(sig, syscall.SIGTERM, syscall.SIGINT) s := <-sig fmt.Printf("Signal received: %s \n", s.String()) os.Signal のチャネルを作成します。その後、signal.Notifyで監視すべきシグナルを列挙します。すると、そこに列挙されたシグナルが発生