File: service_linux.go

package info (click to toggle)
gitlab-ci-multi-runner 14.10.1-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 31,248 kB
  • sloc: sh: 1,694; makefile: 384; asm: 79; ruby: 68
file content (38 lines) | stat: -rw-r--r-- 819 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package commands

import (
	"os"

	"github.com/kardianos/service"
	"github.com/sirupsen/logrus"
	"github.com/urfave/cli"
	service_helpers "gitlab.com/gitlab-org/gitlab-runner/helpers/service"
)

func setupOSServiceConfig(c *cli.Context, config *service.Config) {
	if os.Getuid() != 0 {
		logrus.Fatal("The --user is not supported for non-root users")
	}

	user := c.String("user")
	if user != "" {
		config.Arguments = append(config.Arguments, "--user", user)
	}

	switch service.Platform() {
	case "linux-systemd":
		config.Dependencies = []string{
			"After=syslog.target network.target",
		}
		config.Option = service.KeyValue{
			"Restart": "always",
		}
	case "unix-systemv":
		script := service_helpers.SysvScript()
		if script != "" {
			config.Option = service.KeyValue{
				"SysvScript": script,
			}
		}
	}
}