GoでGraceful Shutdown
サンプルコード
package main
import (
"fmt"
"os"
"os/signal"
"syscall"
)
func main() {
// シグナルを受け取るチャネル
shutdownSignal := make(chan os.Signal, 1)
// 監視するシグナルを登録 (SIGINT, SIGTERMなど)
signal.Notify(c, os.Interrupt, syscall.SIGTERM)
// シグナルを受信するまで待つ
<-shutdownSignal
// プログラム終了時のクリーンアップ処理など
}