diff options
Diffstat (limited to 'main.go')
-rw-r--r-- | main.go | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -80,6 +80,7 @@ func appMain() { for _, cs := range [][]io.Closer{ createAppListeners(config), createMetricsListener(config), + createStatusListener(config), } { defer closeAll(cs) } @@ -176,6 +177,25 @@ func createMetricsListener(config *cfg.Config) []io.Closer { return []io.Closer{l, f} } +// createStatusListener returns net.Listener and *os.File instances. The +// caller must ensure they don't get closed or garbage-collected (which +// implies closing) too soon. +func createStatusListener(config *cfg.Config) []io.Closer { + addr := config.General.StatusAddress + if addr == "" { + return nil + } + + l, f := createSocket(addr) + config.ListenStatus = f.Fd() + + log.WithFields(log.Fields{ + "listener": addr, + }).Debug("Set up status listener") + + return []io.Closer{l, f} +} + func printVersion(showVersion bool, version string) { if showVersion { fmt.Fprintf(os.Stdout, "%s\n", version) |