From 508cf2aa228c42a0d1b9a0dbc4351a876e51b5d9 Mon Sep 17 00:00:00 2001 From: Matthew Holt Date: Mon, 3 Apr 2023 11:57:16 -0600 Subject: [PATCH] cmd: Create pidfile before config load (close #5477) --- cmd/commandfuncs.go | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/cmd/commandfuncs.go b/cmd/commandfuncs.go index cc5666bb1..77a4cdf4a 100644 --- a/cmd/commandfuncs.go +++ b/cmd/commandfuncs.go @@ -208,6 +208,16 @@ func cmdRun(fl Flags) (int, error) { } } + // create pidfile now, in case loading config takes a while (issue #5477) + if runCmdPidfileFlag != "" { + err := caddy.PIDFile(runCmdPidfileFlag) + if err != nil { + caddy.Log().Error("unable to write PID file", + zap.String("pidfile", runCmdPidfileFlag), + zap.Error(err)) + } + } + // run the initial config err = caddy.Load(config, true) if err != nil { @@ -242,16 +252,6 @@ func cmdRun(fl Flags) (int, error) { go watchConfigFile(configFile, runCmdConfigAdapterFlag) } - // create pidfile - if runCmdPidfileFlag != "" { - err := caddy.PIDFile(runCmdPidfileFlag) - if err != nil { - caddy.Log().Error("unable to write PID file", - zap.String("pidfile", runCmdPidfileFlag), - zap.Error(err)) - } - } - // warn if the environment does not provide enough information about the disk hasXDG := os.Getenv("XDG_DATA_HOME") != "" && os.Getenv("XDG_CONFIG_HOME") != "" &&