doc.dev1x.org

無限ループとシグナル受信による停止

サンプルコード

package main

import (
    "fmt"
    "os"
    "os/signal"
    "syscall"
    "time"
)

func main() {

    sigs := make(chan os.Signal, 1)
    signal.Notify(sigs, syscall.SIGTERM, syscall.SIGINT)

    for {
        select {
        default:
            fmt.Println("無限ループ中...")
            time.Sleep(time.Second)
        case <-sigs:
            fmt.Println("シグナルを受信しました。ループを終了します。")
            return
        }
    }

}