From 35692ea6fdc7778fdd88dbba1837925ef29587f4 Mon Sep 17 00:00:00 2001 From: parhelia512 <0011d3@gmail.com> Date: Thu, 18 Sep 2025 15:14:31 +0800 Subject: [PATCH] fix #774 --- core/server/server.go | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/core/server/server.go b/core/server/server.go index d84388a..9c81775 100644 --- a/core/server/server.go +++ b/core/server/server.go @@ -58,27 +58,29 @@ func (s *server) Start(in *gen.LoadConfigReq, out *gen.ErrorResp) (_ error) { } if *in.NeedExtraProcess { - extraConfPath := *in.ExtraProcessConfDir + string(os.PathSeparator) + "extra.conf" - f, e := os.OpenFile(extraConfPath, os.O_CREATE|os.O_TRUNC|os.O_RDWR, 700) - if e != nil { - err = E.Cause(e, "Failed to open extra.conf") - return - } - _, e = f.WriteString(*in.ExtraProcessConf) - if e != nil { - err = E.Cause(e, "Failed to write extra.conf") - return - } - _ = f.Close() args, e := shlex.Split(*in.ExtraProcessArgs) if e != nil { err = E.Cause(e, "Failed to parse args") return } - for idx, arg := range args { - if strings.Contains(arg, "%s") { - args[idx] = fmt.Sprintf(arg, extraConfPath) - break + if in.ExtraProcessConf != nil { + extraConfPath := *in.ExtraProcessConfDir + string(os.PathSeparator) + "extra.conf" + f, e := os.OpenFile(extraConfPath, os.O_CREATE|os.O_TRUNC|os.O_RDWR, 700) + if e != nil { + err = E.Cause(e, "Failed to open extra.conf") + return + } + _, e = f.WriteString(*in.ExtraProcessConf) + if e != nil { + err = E.Cause(e, "Failed to write extra.conf") + return + } + _ = f.Close() + for idx, arg := range args { + if strings.Contains(arg, "%s") { + args[idx] = fmt.Sprintf(arg, extraConfPath) + break + } } }