From 0ea4a073a20c3025d6e1473779d0cd1ae04350e2 Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Tue, 9 Aug 2022 22:59:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/const/vars.go | 7 +++++-- internal/goman/lib.go | 9 +++++++++ internal/nodes/node.go | 5 +++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/internal/const/vars.go b/internal/const/vars.go index 274ebb9..33ddc14 100644 --- a/internal/const/vars.go +++ b/internal/const/vars.go @@ -2,7 +2,10 @@ package teaconst -import "github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs" +import ( + "github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs" + "os" +) var ( // 流量统计 @@ -12,7 +15,7 @@ var ( NodeId int64 = 0 NodeIdString = "" - IsDaemon = false + IsDaemon = len(os.Args) > 1 && os.Args[1] == "daemon" GlobalProductName = nodeconfigs.DefaultProductName diff --git a/internal/goman/lib.go b/internal/goman/lib.go index 0d0feaa..92f3d2a 100644 --- a/internal/goman/lib.go +++ b/internal/goman/lib.go @@ -3,6 +3,7 @@ package goman import ( + teaconst "github.com/TeaOSLab/EdgeNode/internal/const" "runtime" "sync" "time" @@ -14,6 +15,10 @@ var instanceId = uint64(0) // New 新创建goroutine func New(f func()) { + if teaconst.IsDaemon { + return + } + _, file, line, _ := runtime.Caller(1) go func() { @@ -42,6 +47,10 @@ func New(f func()) { // NewWithArgs 创建带有参数的goroutine func NewWithArgs(f func(args ...interface{}), args ...interface{}) { + if teaconst.IsDaemon { + return + } + _, file, line, _ := runtime.Caller(1) go func() { diff --git a/internal/nodes/node.go b/internal/nodes/node.go index 4325254..d5bb423 100644 --- a/internal/nodes/node.go +++ b/internal/nodes/node.go @@ -228,12 +228,17 @@ func (this *Node) Daemon() { _ = os.Setenv("EdgeBackground", "on") var cmd = exec.Command(exe) + var buf = &bytes.Buffer{} + cmd.Stderr = buf err = cmd.Start() if err != nil { return err } err = cmd.Wait() if err != nil { + if isDebug { + log.Println("[DAEMON]" + buf.String()) + } return err } return nil