From: Tom Clegg Date: Thu, 30 Jun 2022 15:22:53 +0000 (-0400) Subject: 16552: Start systemd service after successful init. X-Git-Tag: 2.5.0~116^2~20 X-Git-Url: https://git.arvados.org/arvados.git/commitdiff_plain/2361a96130524ee57b0e1d652d560e8e31993b04 16552: Start systemd service after successful init. Arvados-DCO-1.1-Signed-off-by: Tom Clegg --- diff --git a/cmd/arvados-package/install.go b/cmd/arvados-package/install.go index 72688dc0a9..9273ac9c73 100644 --- a/cmd/arvados-package/install.go +++ b/cmd/arvados-package/install.go @@ -124,7 +124,7 @@ eatmydata apt-get install --reinstall -y --no-install-recommends arvados-server- SUDO_FORCE_REMOVE=yes apt-get autoremove -y /etc/init.d/postgresql start -arvados-server init -cluster-id x1234 -domain=$domain -login=test $initargs +arvados-server init -cluster-id x1234 -domain=$domain -login=test -start=false $initargs exec arvados-server boot -listen-host=0.0.0.0 $bootargs `) cmd.Stdout = stdout diff --git a/lib/install/init.go b/lib/install/init.go index 6954a60d87..2257fc57c4 100644 --- a/lib/install/init.go +++ b/lib/install/init.go @@ -35,6 +35,7 @@ type initCommand struct { PostgreSQLPassword string Login string TLS string + Start bool } func (initcmd *initCommand) RunCommand(prog string, args []string, stdin io.Reader, stdout, stderr io.Writer) int { @@ -63,6 +64,7 @@ func (initcmd *initCommand) RunCommand(prog string, args []string, stdin io.Read flags.StringVar(&initcmd.Domain, "domain", hostname, "cluster public DNS `name`, like x1234.arvadosapi.com") flags.StringVar(&initcmd.Login, "login", "", "login `backend`: test, pam, or ''") flags.StringVar(&initcmd.TLS, "tls", "none", "tls certificate `source`: acme, auto, insecure, or none") + flags.BoolVar(&initcmd.Start, "start", true, "start systemd service after creating config") if ok, code := cmd.ParseFlags(flags, prog, args, "", stderr); !ok { return code } else if *versionFlag { @@ -254,6 +256,19 @@ func (initcmd *initCommand) RunCommand(prog string, args []string, stdin io.Read } fmt.Fprintln(stderr, "initialized database") + if initcmd.Start { + fmt.Fprintln(stderr, "starting systemd service") + cmd := exec.CommandContext(ctx, "systemctl", "start", "--no-block", "arvados") + cmd.Dir = "/" + cmd.Stdout = stderr + cmd.Stderr = stderr + err = cmd.Run() + if err != nil { + err = fmt.Errorf("%v: %w", cmd.Args, err) + return 1 + } + } + return 0 }