diff --git a/internal/process/manager.go b/internal/process/manager.go index 245508f..d86ca2c 100644 --- a/internal/process/manager.go +++ b/internal/process/manager.go @@ -838,6 +838,7 @@ func (pm *ProcessManager) computeState(pid int, result PortCheckResult) ProcessS // 2. 进程不存在 if !alive { + log.Printf("[DEBUG] computeState: alive=false, pid=%d, expectedStop=%v, exitCode=%d", pid, pm.expectedStop, exitCode) if pm.expectedStop { state.Phase = PhaseStopped return state @@ -859,6 +860,7 @@ func (pm *ProcessManager) computeState(pid int, result PortCheckResult) ProcessS // 3. 启动超时 if time.Since(pm.startTime) > StartupTimeout && pm.currentPhase != PhaseReloading { + log.Printf("[DEBUG] computeState: 启动超时, startTime=%v, elapsed=%v", pm.startTime, time.Since(pm.startTime)) state.Error = fmt.Sprintf("启动超时 (超过 %v)", StartupTimeout) if portErr != nil { state.Error += ": " + portErr.Error() @@ -883,6 +885,7 @@ func (pm *ProcessManager) computeState(pid int, result PortCheckResult) ProcessS // 5. 端口就绪,检查归属 if portPID > 0 && pid > 0 && portPID != pid { + log.Printf("[DEBUG] computeState: 端口冲突, portPID=%d, pid=%d", portPID, pid) // 端口被其他进程占用 → CONFLICT state.Phase = PhaseConflict state.Error = fmt.Sprintf("端口 %d 被进程 %d (%s) 占用,与 PID 文件 %d 不一致",