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") != "" &&