Redirect logs to std for mac (#196)
Add support for StandardOutPath and StandardErrorPath for darwin
This commit is contained in:
committed by
Daniel Theophanes
parent
4df36c9fc1
commit
6b582019e8
+1
-1
@@ -141,7 +141,7 @@ type Config struct {
|
||||
// - RunWait func() (wait for SIGNAL) - Do not install signal but wait for this function to return.
|
||||
// - ReloadSignal string () [USR1, ...] - Signal to send on reaload.
|
||||
// - PIDFile string () [/run/prog.pid] - Location of the PID file.
|
||||
// - LogOutput bool (false) - Redirect StdErr & StdOut to files.
|
||||
// - LogOutput bool (false) - Redirect StdErr & StandardOutPath to files.
|
||||
// - Restart string (always) - How shall service be restarted.
|
||||
// - SuccessExitStatus string () - The list of exit status that shall be considered as successful,
|
||||
// in addition to the default ones.
|
||||
|
||||
+35
-18
@@ -160,6 +160,9 @@ func (s *darwinLaunchdService) Install() error {
|
||||
|
||||
KeepAlive, RunAtLoad bool
|
||||
SessionCreate bool
|
||||
StandardOut bool
|
||||
StandardError bool
|
||||
|
||||
}{
|
||||
Config: s.Config,
|
||||
Path: path,
|
||||
@@ -184,7 +187,7 @@ func (s *darwinLaunchdService) Uninstall() error {
|
||||
func (s *darwinLaunchdService) Status() (Status, error) {
|
||||
exitCode, out, err := runWithOutput("launchctl", "list", s.Name)
|
||||
if exitCode == 0 && err != nil {
|
||||
if !strings.Contains(err.Error(), "failed with stderr") {
|
||||
if !strings.Contains(err.Error(), "failed with StandardError") {
|
||||
return StatusUnknown, err
|
||||
}
|
||||
}
|
||||
@@ -261,22 +264,36 @@ var launchdConfig = `<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
|
||||
"http://www.apple.com/DTDs/PropertyList-1.0.dtd" >
|
||||
<plist version='1.0'>
|
||||
<dict>
|
||||
<key>Label</key><string>{{html .Name}}</string>
|
||||
<key>ProgramArguments</key>
|
||||
<array>
|
||||
<string>{{html .Path}}</string>
|
||||
{{range .Config.Arguments}}
|
||||
<string>{{html .}}</string>
|
||||
{{end}}
|
||||
</array>
|
||||
{{if .UserName}}<key>UserName</key><string>{{html .UserName}}</string>{{end}}
|
||||
{{if .ChRoot}}<key>RootDirectory</key><string>{{html .ChRoot}}</string>{{end}}
|
||||
{{if .WorkingDirectory}}<key>WorkingDirectory</key><string>{{html .WorkingDirectory}}</string>{{end}}
|
||||
<key>SessionCreate</key><{{bool .SessionCreate}}/>
|
||||
<key>KeepAlive</key><{{bool .KeepAlive}}/>
|
||||
<key>RunAtLoad</key><{{bool .RunAtLoad}}/>
|
||||
<key>Disabled</key><false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Label</key>
|
||||
<string>{{html .Name}}</string>
|
||||
<key>ProgramArguments</key>
|
||||
<array>
|
||||
<string>{{html .Path}}</string>
|
||||
{{range .Config.Arguments}}
|
||||
<string>{{html .}}</string>
|
||||
{{end}}
|
||||
</array>
|
||||
{{if .UserName}}<key>UserName</key>
|
||||
<string>{{html .UserName}}</string>{{end}}
|
||||
{{if .ChRoot}}<key>RootDirectory</key>
|
||||
<string>{{html .ChRoot}}</string>{{end}}
|
||||
{{if .WorkingDirectory}}<key>WorkingDirectory</key>
|
||||
<string>{{html .WorkingDirectory}}</string>{{end}}
|
||||
<key>SessionCreate</key>
|
||||
<{{bool .SessionCreate}}/>
|
||||
<key>KeepAlive</key>
|
||||
<{{bool .KeepAlive}}/>
|
||||
<key>RunAtLoad</key>
|
||||
<{{bool .RunAtLoad}}/>
|
||||
<key>Disabled</key>
|
||||
<false/>
|
||||
|
||||
<key>StandardOutPath</key>
|
||||
<string>/usr/local/var/log/{{html .Name}}.out.log</string>
|
||||
<key>StandardErrorPath</key>
|
||||
<string>/usr/local/var/log/{{html .Name}}.err.log</string>
|
||||
|
||||
</dict>
|
||||
</plist>
|
||||
`
|
||||
|
||||
Reference in New Issue
Block a user