summaryrefslogtreecommitdiffstats
path: root/client/go/script-utils/startcbinary/startcbinary.go
diff options
context:
space:
mode:
authorArne Juul <arnej@yahooinc.com>2022-09-29 13:06:45 +0000
committerArne Juul <arnej@yahooinc.com>2022-09-29 13:06:45 +0000
commit791b304870044f478fcd7fcd095157c63c55b978 (patch)
tree02ad55ee3739cea719ce89657751804862c9bb8b /client/go/script-utils/startcbinary/startcbinary.go
parent4814a02927ba9490f58ed1c0b043b3ee8e853752 (diff)
use unix.Exec
Diffstat (limited to 'client/go/script-utils/startcbinary/startcbinary.go')
-rw-r--r--client/go/script-utils/startcbinary/startcbinary.go29
1 files changed, 7 insertions, 22 deletions
diff --git a/client/go/script-utils/startcbinary/startcbinary.go b/client/go/script-utils/startcbinary/startcbinary.go
index 54b92d3ef06..92f09d9098c 100644
--- a/client/go/script-utils/startcbinary/startcbinary.go
+++ b/client/go/script-utils/startcbinary/startcbinary.go
@@ -6,9 +6,6 @@ package startcbinary
import (
"fmt"
"os"
- "os/exec"
-
- "github.com/vespa-engine/vespa/client/go/trace"
)
func startCbinary(spec ProgSpec) int {
@@ -32,28 +29,16 @@ func startCbinary(spec ProgSpec) int {
func (spec *ProgSpec) run() error {
prog := spec.Program + "-bin"
args := spec.Args
- cmd := exec.Command(prog, args...)
if spec.shouldUseValgrind {
- cmd.Path = spec.valgrindBinary()
- cmd.Args = spec.prependValgrind(prog, args)
+ args = spec.prependValgrind(prog, args)
+ prog = spec.valgrindBinary()
} else if spec.shouldUseNumaCtl {
- cmd.Path = spec.numaCtlBinary()
- cmd.Args = spec.prependNumaCtl(prog, args)
+ args = spec.prependNumaCtl(prog, args)
+ prog = spec.numaCtlBinary()
}
if spec.shouldUseVespaMalloc {
- spec.setenv("LD_PRELOAD", spec.vespaMallocPreload)
- }
- if len(spec.Env) > 0 {
- env := os.Environ()
- for k, v := range spec.Env {
- trace.Trace("add to environment:", k, "=", v)
- env = append(env, k+"="+v)
- }
- cmd.Env = env
+ spec.setenv(ENV_LD_PRELOAD, spec.vespaMallocPreload)
}
- cmd.Stdin = os.Stdin
- cmd.Stdout = os.Stdout
- cmd.Stderr = os.Stderr
- trace.Trace("run cmd", cmd)
- return cmd.Run()
+ envv := spec.effectiveEnv()
+ return myexecvp(prog, args, envv)
}