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

}