diff options
author | Matthew Holt <mholt@users.noreply.github.com> | 2020-05-13 11:28:15 -0600 |
---|---|---|
committer | Matthew Holt <mholt@users.noreply.github.com> | 2020-05-13 11:28:15 -0600 |
commit | 4df56c77e380cdfec5e23862f7faa8bd843022e6 (patch) | |
tree | 09fdf02b4ffc915b520a5249e91e839b0ea997e2 /cmd/commandfuncs.go | |
parent | cee5589b9856de299ea6960d60541d851498b7c3 (diff) |
cmd: Add pidfile support (closes #3235)
Diffstat (limited to 'cmd/commandfuncs.go')
-rw-r--r-- | cmd/commandfuncs.go | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/cmd/commandfuncs.go b/cmd/commandfuncs.go index efdcfdc..f9e1033 100644 --- a/cmd/commandfuncs.go +++ b/cmd/commandfuncs.go @@ -41,6 +41,7 @@ import ( func cmdStart(fl Flags) (int, error) { startCmdConfigFlag := fl.String("config") startCmdConfigAdapterFlag := fl.String("adapter") + startCmdPidfileFlag := fl.String("pidfile") startCmdWatchFlag := fl.Bool("watch") // open a listener to which the child process will connect when @@ -71,6 +72,9 @@ func cmdStart(fl Flags) (int, error) { if startCmdWatchFlag { cmd.Args = append(cmd.Args, "--watch") } + if startCmdPidfileFlag != "" { + cmd.Args = append(cmd.Args, "--pidfile", startCmdPidfileFlag) + } stdinpipe, err := cmd.StdinPipe() if err != nil { return caddy.ExitCodeFailedStartup, @@ -149,6 +153,7 @@ func cmdRun(fl Flags) (int, error) { runCmdResumeFlag := fl.Bool("resume") runCmdPrintEnvFlag := fl.Bool("environ") runCmdWatchFlag := fl.Bool("watch") + runCmdPidfileFlag := fl.String("pidfile") runCmdPingbackFlag := fl.String("pingback") // if we are supposed to print the environment, do that first @@ -225,6 +230,16 @@ 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") != "" && |