From 532f55fba08fccda40d73bf1494e41fc18052d5e Mon Sep 17 00:00:00 2001 From: Madray Haven Date: Sun, 11 Sep 2022 19:58:36 +0800 Subject: [PATCH] fix: More compatible behavior for getting the current executable dir --- internal/base/flag.go | 3 ++- server/daemon.go | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/internal/base/flag.go b/internal/base/flag.go index 5e9bd7b..24ad361 100644 --- a/internal/base/flag.go +++ b/internal/base/flag.go @@ -140,7 +140,8 @@ func ResetWorkingDir() { args = append(args, os.Args[i]) } } - p, _ := filepath.Abs(os.Args[0]) + ex, _ := os.Executable() + p, _ := filepath.Abs(ex) _, err := os.Stat(p) if !(err == nil || errors.Is(err, os.ErrExist)) { log.Fatalf("重置工作目录时出现错误: 无法找到路径 %v", p) diff --git a/server/daemon.go b/server/daemon.go index 0a570b6..cb0671c 100644 --- a/server/daemon.go +++ b/server/daemon.go @@ -5,6 +5,7 @@ package server import ( "os" "os/exec" + "path/filepath" "strconv" "strings" @@ -28,7 +29,9 @@ func Daemon() { execArgs = append(execArgs, args[i]) } - proc := exec.Command(os.Args[0], execArgs...) + ex, _ := os.Executable() + p, _ := filepath.Abs(ex) + proc := exec.Command(p, execArgs...) err := proc.Start() if err != nil { panic(err)