HTTP over ginを提供しています https://github.com/fvbock/endless。基本的な HTTP サーバーとの違いを確認したいと思います。
私はsyscall.SIGUSR1
信号を送信しました:
syscall.Kill(getPid(), syscall.SIGUSR1)
アプリは終了しませんが、再起動を検出できません。
私がしなければならないことは、toml 構成ファイルが変更されたときにアプリの新しい構成を初期化することです。
私のコードは次のとおりです。
package main
import (
"os"
"fmt"
"syscall"
"github.com/gin-gonic/gin"
"github.com/fvbock/endless"
"github.com/BurntSushi/toml"
)
type Config struct {
Age int
Cats []string
}
var cfg Config
func restart(c *gin.Context) {
syscall.Kill(os.Getpid(), syscall.SIGUSR1)
}
func init() {
toml.DecodeFile("config.toml", &cfg)
fmt.Println("Testing", cfg)
}
func main() {
router := gin.New()
router.GET("/restart", restart)
if err := endless.ListenAndServe("localhost:7777", router); err != nil {
panic(err)
}
}
再起動エンドポイントに到達したら、toml 構成を出力します。