Skip to content

Commit 5b27f67

Browse files
committed
Reload configuration on SIGHUP
1 parent f6e7802 commit 5b27f67

File tree

1 file changed

+27
-1
lines changed

1 file changed

+27
-1
lines changed

command.go

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@ package caddydns01proxy
22

33
import (
44
"fmt"
5+
"os"
6+
"os/signal"
7+
"syscall"
58

69
"github.com/caddyserver/caddy/v2"
710
caddycmd "github.com/caddyserver/caddy/v2/cmd"
@@ -92,5 +95,28 @@ func cmdRun(fs caddycmd.Flags) (int, error) {
9295
return caddy.ExitCodeFailedStartup, err
9396
}
9497

95-
select {}
98+
sigChan := make(chan os.Signal, 1)
99+
signal.Notify(sigChan, syscall.SIGHUP)
100+
for sig := range sigChan {
101+
switch sig {
102+
case syscall.SIGHUP:
103+
caddy.Log().Info("caught SIGHUP - reloading configuration")
104+
cfg, err = caddyConfigFromConfigFile(configFlag)
105+
if err != nil {
106+
caddy.Log().Error("unable to read new configuration", zap.Error(err))
107+
continue
108+
}
109+
110+
err = caddy.Run(cfg)
111+
if err != nil {
112+
caddy.Log().Error("unable to load new configuration", zap.Error(err))
113+
continue
114+
}
115+
116+
caddy.Log().Info("configuration reloaded")
117+
}
118+
}
119+
120+
signal.Reset()
121+
return caddy.ExitCodeSuccess, nil
96122
}

0 commit comments

Comments
 (0)