From 3dc9a7f1a5600ae99cf45e03708b338f7c5b3b48 Mon Sep 17 00:00:00 2001 From: Vangie Du Date: Thu, 4 Dec 2025 22:08:44 +0800 Subject: [PATCH] :bug: fix: fix build issue - Removed redundant process group setup in server start commands. - Introduced a platform-specific method for setting process attributes, enhancing code clarity and maintainability. - Updated Makefile to simplify package creation by removing unnecessary directory structures. --- Makefile | 2 -- packages/cli/internal/adb_expose/commands.go | 7 +++---- packages/cli/internal/server/auto_start.go | 8 ++++---- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index 46fc5a1..91f3f2a 100644 --- a/Makefile +++ b/Makefile @@ -106,9 +106,7 @@ dist-%: ## Create package for specific platform and architecture (e.g., dist-dar rm -rf $$PLATFORM_DIR; \ mkdir -p $$PLATFORM_DIR/bin; \ mkdir -p $$PLATFORM_DIR/packages/cli; \ - mkdir -p $$PLATFORM_DIR/packages/cli/cmd/script; \ cp packages/cli/gbox-$$PLATFORM_ARCH $$PLATFORM_DIR/packages/cli/gbox; \ - cp -r packages/cli/cmd/script/. $$PLATFORM_DIR/packages/cli/cmd/script/; \ cp .env $$PLATFORM_DIR/ 2>/dev/null || true; \ cp LICENSE README.md $$PLATFORM_DIR/; \ if [ -f "packages/cli/gbox-$$PLATFORM_ARCH" ]; then \ diff --git a/packages/cli/internal/adb_expose/commands.go b/packages/cli/internal/adb_expose/commands.go index 9a92afe..a695260 100644 --- a/packages/cli/internal/adb_expose/commands.go +++ b/packages/cli/internal/adb_expose/commands.go @@ -15,6 +15,7 @@ import ( sdk "github.com/babelcloud/gbox-sdk-go" gboxsdk "github.com/babelcloud/gbox/packages/cli/internal/client" + "github.com/babelcloud/gbox/packages/cli/internal/proc_group" "github.com/babelcloud/gbox/packages/cli/internal/util" ) @@ -508,10 +509,8 @@ func startServerInBackground() error { // Create command to start server in background with reply fd cmd := exec.Command(execPath, "server", "start", "--reply-fd", "3") - // Set up process attributes for daemon mode - cmd.SysProcAttr = &syscall.SysProcAttr{ - Setpgid: true, // Create new process group - } + // Set up process attributes for daemon mode (platform-specific) + procgroup.SetProcGrp(cmd) // Pass the write end of the pipe as file descriptor 3 cmd.ExtraFiles = []*os.File{writer} diff --git a/packages/cli/internal/server/auto_start.go b/packages/cli/internal/server/auto_start.go index 24a50bc..ac9239a 100644 --- a/packages/cli/internal/server/auto_start.go +++ b/packages/cli/internal/server/auto_start.go @@ -10,6 +10,8 @@ import ( "strconv" "syscall" "time" + + "github.com/babelcloud/gbox/packages/cli/internal/proc_group" ) // AutoStartManager manages automatic server startup @@ -64,10 +66,8 @@ func (m *AutoStartManager) startServerInBackground() error { // Create command to start server in background cmd := exec.Command(execPath, "server", "start", "--daemon") - // Set up process attributes for daemon mode - cmd.SysProcAttr = &syscall.SysProcAttr{ - Setpgid: true, // Create new process group - } + // Set up process attributes for daemon mode (platform-specific) + procgroup.SetProcGrp(cmd) // Redirect output to log file logFile, err := os.OpenFile(m.logFile, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)