doc.dev1x.org

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

    // プログラム終了時のクリーンアップ処理など
}