mirror of
https://github.com/netbirdio/service.git
synced 2026-05-22 17:08:14 -07:00
+50
-38
@@ -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>
|
||||
`
|
||||
|
||||
@@ -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}}
|
||||
|
||||
@@ -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
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user