Merge pull request #1 from kardianos/master

sync upstream
This commit is contained in:
Maycon Santos
2022-10-11 09:56:51 +02:00
committed by GitHub
4 changed files with 64 additions and 40 deletions
+50 -38
View File
@@ -290,46 +290,58 @@ func (s *darwinLaunchdService) SystemLogger(errs chan<- error) (Logger, error) {
return newSysLogger(s.Name, errs)
}
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>
var launchdConfig = `<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Disabled</key>
<false/>
{{- if .EnvVars}}
<key>EnvironmentVariables</key>
<dict>
{{range $k, $v := .EnvVars -}}
<key>{{html $k}}</key>
<string>{{html $v}}</string>
{{end -}}
{{- range $k, $v := .EnvVars}}
<key>{{html $k}}</key>
<string>{{html $v}}</string>
{{- end}}
</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/>
{{if .StandardOutPath}}<key>StandardOutPath</key>
<string>{{html .StandardOutPath}}</string>{{end}}
{{if .StandardErrorPath}}<key>StandardErrorPath</key>
<string>{{html .StandardErrorPath}}</string>{{end}}
</dict>
{{- end}}
<key>KeepAlive</key>
<{{bool .KeepAlive}}/>
<key>Label</key>
<string>{{html .Name}}</string>
<key>ProgramArguments</key>
<array>
<string>{{html .Path}}</string>
{{- if .Config.Arguments}}
{{- range .Config.Arguments}}
<string>{{html .}}</string>
{{- end}}
{{- end}}
</array>
{{- if .ChRoot}}
<key>RootDirectory</key>
<string>{{html .ChRoot}}</string>
{{- end}}
<key>RunAtLoad</key>
<{{bool .RunAtLoad}}/>
<key>SessionCreate</key>
<{{bool .SessionCreate}}/>
{{- if .StandardErrorPath}}
<key>StandardErrorPath</key>
<string>{{html .StandardErrorPath}}</string>
{{- end}}
{{- if .StandardOutPath}}
<key>StandardOutPath</key>
<string>{{html .StandardOutPath}}</string>
{{- end}}
{{- if .UserName}}
<key>UserName</key>
<string>{{html .UserName}}</string>
{{- end}}
{{- if .WorkingDirectory}}
<key>WorkingDirectory</key>
<string>{{html .WorkingDirectory}}</string>
{{- end}}
</dict>
</plist>
`
+4
View File
@@ -230,6 +230,10 @@ command_args="{{range .Arguments}}{{.}} {{end}}"
name=$(basename $(readlink -f $command))
supervise_daemon_args="--stdout {{.LogDirectory}}/${name}.log --stderr {{.LogDirectory}}/${name}.err"
{{range $k, $v := .EnvVars -}}
export {{$k}}={{$v}}
{{end -}}
{{- if .Dependencies }}
depend() {
{{- range $i, $dep := .Dependencies}}
+4
View File
@@ -207,6 +207,10 @@ pid_file="/var/run/$name.pid"
stdout_log="{{.LogDirectory}}/$name.log"
stderr_log="{{.LogDirectory}}/$name.err"
{{range $k, $v := .EnvVars -}}
export {{$k}}={{$v}}
{{end -}}
[ -e /etc/sysconfig/$name ] && . /etc/sysconfig/$name
get_pid() {
+6 -2
View File
@@ -149,11 +149,11 @@ func (l WindowsLogger) NInfof(eventID uint32, format string, a ...interface{}) e
var interactive = false
func init() {
var err error
interactive, err = svc.IsAnInteractiveSession()
isService, err := svc.IsWindowsService()
if err != nil {
panic(err)
}
interactive = !isService
}
func (ws *windowsService) String() string {
@@ -241,6 +241,10 @@ func lowPrivSvc(m *mgr.Mgr, name string) (*mgr.Service, error) {
}
func (ws *windowsService) setEnvironmentVariablesInRegistry() error {
if len(ws.EnvVars) == 0 {
return nil
}
k, _, err := registry.CreateKey(
registry.LOCAL_MACHINE, `SYSTEM\CurrentControlSet\Services\`+ws.Name,
registry.QUERY_VALUE|registry.SET_VALUE|registry.CREATE_SUB_KEY)