Browse Source

fix(plugin): set working dir (#2166)

Signed-off-by: Jiyong Huang <huangjy@emqx.io>
ngjaying 1 year ago
parent
commit
d3d634e599

+ 1 - 0
internal/plugin/native/manager.go

@@ -550,6 +550,7 @@ func (rr *Manager) install(t plugin2.PluginType, name, src string, shellParas []
 		var outb, errb bytes.Buffer
 		cmd.Stdout = &outb
 		cmd.Stderr = &errb
+		cmd.Dir = tempPath
 		err := cmd.Run()
 		if err != nil {
 			conf.Log.Infof(`err:%v stdout:%s stderr:%s`, err, outb.String(), errb.String())

+ 1 - 0
internal/plugin/portable/manager.go

@@ -328,6 +328,7 @@ func (m *Manager) install(name, src string, shellParas []string) (resultErr erro
 			shell[0] = spath
 		}
 		cmd := exec.Command("/bin/sh", shell...)
+		cmd.Dir = pluginTarget
 		conf.Log.Infof("run install script %s", strings.Join(shell, " "))
 		var outb, errb bytes.Buffer
 		cmd.Stdout = &outb

+ 2 - 0
internal/plugin/portable/runtime/plugin_ins_manager.go

@@ -19,6 +19,7 @@ import (
 	"fmt"
 	"os"
 	"os/exec"
+	"path/filepath"
 	"sync"
 	"time"
 
@@ -272,6 +273,7 @@ func (p *pluginInsManager) getOrStartProcess(pluginMeta *PluginMeta, pconf *Port
 	}
 	cmd.Stdout = conf.Log.Out
 	cmd.Stderr = conf.Log.Out
+	cmd.Dir = filepath.Dir(pluginMeta.Executable)
 
 	conf.Log.Println("plugin starting")
 	err = cmd.Start()

+ 1 - 0
internal/plugin/wasm/manager.go

@@ -325,6 +325,7 @@ func (m *Manager) install(name, src string, shellParas []string) (resultErr erro
 		var outb, errb bytes.Buffer
 		cmd.Stdout = &outb
 		cmd.Stderr = &errb
+		cmd.Dir = pluginTarget
 		err = cmd.Run()
 		if err != nil {
 			return fmt.Errorf(`err:%v stdout:%s stderr:%s`, err, outb.String(), errb.String())