diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2023-01-24 21:54:03 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-24 21:54:03 +0100 |
commit | 3e5e45f78b32a833e47ba314d2df840092a6aaaf (patch) | |
tree | b68d465e2714198d64b3c0f1aea13a04f93f7724 | |
parent | da358c688d7626bcd6797df8c9ca21e6561889f9 (diff) | |
parent | 4ea51af7fe8a9fb0abe9394f1574e590ce8e4688 (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.go | 2 | ||||
-rw-r--r-- | client/go/script-utils/services/configproxy.go | 9 | ||||
-rw-r--r-- | client/go/script-utils/services/sentinel.go | 9 | ||||
-rw-r--r-- | client/go/script-utils/services/stop.go | 35 | ||||
-rw-r--r-- | client/go/util/run_cmd.go | 4 |
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() |