aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2023-01-24 21:54:03 +0100
committerGitHub <noreply@github.com>2023-01-24 21:54:03 +0100
commit3e5e45f78b32a833e47ba314d2df840092a6aaaf (patch)
treeb68d465e2714198d64b3c0f1aea13a04f93f7724
parentda358c688d7626bcd6797df8c9ca21e6561889f9 (diff)
parent4ea51af7fe8a9fb0abe9394f1574e590ce8e4688 (diff)
Merge pull request #25710 from vespa-engine/arnej/stop-services-in-go
simpler version of vespa-stop-services
-rw-r--r--client/go/script-utils/main.go2
-rw-r--r--client/go/script-utils/services/configproxy.go9
-rw-r--r--client/go/script-utils/services/sentinel.go9
-rw-r--r--client/go/script-utils/services/stop.go35
-rw-r--r--client/go/util/run_cmd.go4
5 files changed, 59 insertions, 0 deletions
diff --git a/client/go/script-utils/main.go b/client/go/script-utils/main.go
index 89802ad5697..79125292632 100644
--- a/client/go/script-utils/main.go
+++ b/client/go/script-utils/main.go
@@ -34,6 +34,8 @@ func main() {
os.Args = os.Args[1:]
}
switch action {
+ case "vespa-stop-services":
+ os.Exit(services.VespaStopServices())
case "vespa-start-services":
os.Exit(services.VespaStartServices())
case "start-services":
diff --git a/client/go/script-utils/services/configproxy.go b/client/go/script-utils/services/configproxy.go
index fb452a4de00..9714d9af284 100644
--- a/client/go/script-utils/services/configproxy.go
+++ b/client/go/script-utils/services/configproxy.go
@@ -132,3 +132,12 @@ func StartConfigproxy() int {
}
return 1
}
+
+func stopProxyWithRunserver() {
+ _, err := util.SystemCommand.Run("vespa-runserver",
+ "-s", PROXY_SERVICE_NAME,
+ "-p", CONFIGPROXY_PIDFILE, "-S")
+ if err != nil {
+ trace.Warning("Stopping sentinel:", err)
+ }
+}
diff --git a/client/go/script-utils/services/sentinel.go b/client/go/script-utils/services/sentinel.go
index 17f07ce4d55..352acde38bd 100644
--- a/client/go/script-utils/services/sentinel.go
+++ b/client/go/script-utils/services/sentinel.go
@@ -82,3 +82,12 @@ func StartConfigSentinel() int {
}
return 1
}
+
+func stopSentinelWithRunserver() {
+ _, err := util.SystemCommand.Run("vespa-runserver",
+ "-s", SENTINEL_SERVICE_NAME,
+ "-p", SENTINEL_PIDFILE, "-S")
+ if err != nil {
+ trace.Warning("Stopping sentinel:", err)
+ }
+}
diff --git a/client/go/script-utils/services/stop.go b/client/go/script-utils/services/stop.go
new file mode 100644
index 00000000000..c2ad332a89d
--- /dev/null
+++ b/client/go/script-utils/services/stop.go
@@ -0,0 +1,35 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+// Author: arnej
+
+package services
+
+import (
+ "os"
+
+ "github.com/vespa-engine/vespa/client/go/envvars"
+ "github.com/vespa-engine/vespa/client/go/trace"
+ "github.com/vespa-engine/vespa/client/go/util"
+ "github.com/vespa-engine/vespa/client/go/vespa"
+)
+
+func VespaStopServices() int {
+ if doTrace := os.Getenv(envvars.TRACE_STARTUP); doTrace != "" {
+ trace.AdjustVerbosity(1)
+ }
+ if doDebug := os.Getenv(envvars.DEBUG_STARTUP); doDebug != "" {
+ trace.AdjustVerbosity(2)
+ }
+ err := vespa.LoadDefaultEnv()
+ if err != nil {
+ util.JustExitWith(err)
+ }
+ err = vespa.MaybeSwitchUser("vespa-stop-services")
+ if err != nil {
+ util.JustExitWith(err)
+ }
+ vespa.CheckCorrectUser()
+ trace.Debug("running as correct user")
+ stopSentinelWithRunserver()
+ stopProxyWithRunserver()
+ return 0
+}
diff --git a/client/go/util/run_cmd.go b/client/go/util/run_cmd.go
index 0b66bc66ee9..bbdda0915fd 100644
--- a/client/go/util/run_cmd.go
+++ b/client/go/util/run_cmd.go
@@ -18,6 +18,7 @@ const (
BackTicksWithStderr BackTicks = iota
BackTicksIgnoreStderr
BackTicksForwardStderr
+ SystemCommand
)
func (b BackTicks) Run(program string, args ...string) (string, error) {
@@ -31,6 +32,9 @@ func (b BackTicks) Run(program string, args ...string) (string, error) {
cmd.Stderr = nil
case BackTicksForwardStderr:
cmd.Stderr = os.Stderr
+ case SystemCommand:
+ cmd.Stdout = os.Stdout
+ cmd.Stderr = os.Stderr
}
trace.Debug("running command:", program, strings.Join(args, " "))
err := cmd.Run()