From 3a372b85c59c5a5bbc0d383591c0abba4f03d878 Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Sun, 9 Dec 2018 19:55:54 +0100 Subject: [PATCH] settings: reload through SIGHUP --- settings/settings.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/settings/settings.go b/settings/settings.go index 700bb9c1..63f7a896 100644 --- a/settings/settings.go +++ b/settings/settings.go @@ -6,8 +6,10 @@ import ( "encoding/json" "log" "os" + "os/signal" "path" "time" + "syscall" "gopkg.in/fsnotify.v1" ) @@ -117,6 +119,20 @@ func LoadAndWatchSettings(settingsPath string, reload func (FICSettings)) { } } + // Register SIGHUP + c := make(chan os.Signal, 1) + signal.Notify(c, syscall.SIGHUP) + go func(){ + for range c { + log.Println("SIGHUP received, reloading settings...") + if config, err := ReadSettings(settingsPath); err != nil { + log.Println("ERROR: Unable to read challenge settings:", err) + } else { + reload(config) + } + } + }() + // Watch the configuration file if watcher, err := fsnotify.NewWatcher(); err != nil { log.Fatal(err)