13497: Add systemd unit to arvados-controller package.
authorTom Clegg <tclegg@veritasgenetics.com>
Thu, 14 Jun 2018 19:37:13 +0000 (15:37 -0400)
committerTom Clegg <tclegg@veritasgenetics.com>
Thu, 14 Jun 2018 19:37:13 +0000 (15:37 -0400)
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tclegg@veritasgenetics.com>

cmd/arvados-server/arvados-controller.service [new file with mode: 0644]
lib/service/cmd.go

diff --git a/cmd/arvados-server/arvados-controller.service b/cmd/arvados-server/arvados-controller.service
new file mode 100644 (file)
index 0000000..fbd73e3
--- /dev/null
@@ -0,0 +1,27 @@
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
+[Unit]
+Description=Arvados controller
+Documentation=https://doc.arvados.org/
+After=network.target
+AssertPathExists=/etc/arvados/config.yml
+
+# systemd==229 (ubuntu:xenial) obeys StartLimitInterval in the [Unit] section
+StartLimitInterval=0
+
+# systemd>=230 (debian:9) obeys StartLimitIntervalSec in the [Unit] section
+StartLimitIntervalSec=0
+
+[Service]
+Type=notify
+ExecStart=/usr/bin/arvados-controller
+Restart=always
+RestartSec=1
+
+# systemd<=219 (centos:7, debian:8, ubuntu:trusty) obeys StartLimitInterval in the [Service] section
+StartLimitInterval=0
+
+[Install]
+WantedBy=multi-user.target
index 3447bfb16e2b7b0a6c085cb8af08e4f56da8376e..ab788606619a03ce80e9bf8ab30cef4cfda393ff 100644 (file)
@@ -15,6 +15,7 @@ import (
        "git.curoverse.com/arvados.git/sdk/go/arvados"
        "git.curoverse.com/arvados.git/sdk/go/httpserver"
        "github.com/Sirupsen/logrus"
+       "github.com/coreos/go-systemd/daemon"
 )
 
 type NewHandlerFunc func(*arvados.Cluster, *arvados.SystemNode) http.Handler
@@ -92,6 +93,9 @@ func (c *command) RunCommand(prog string, args []string, stdin io.Reader, stdout
                "Listen":  srv.Addr,
                "Service": c.svcName,
        }).Info("listening")
+       if _, err := daemon.SdNotify(false, "READY=1"); err != nil {
+               log.WithError(err).Errorf("error notifying init daemon")
+       }
        err = srv.Wait()
        if err != nil {
                return 1