Files
gastown/internal/cmd/process_unix.go
Johann Dirry 5d96243414 fix: Windows build support with platform-specific process/signal handling
Separate platform-dependent code into build-tagged files:
- process_unix.go / process_windows.go: isProcessRunning() implementation
- signals_unix.go / signals_windows.go: daemon signal handling (Windows lacks SIGUSR1)

Windows implementation uses windows.OpenProcess with PROCESS_QUERY_LIMITED_INFORMATION
and checks exit code against STILL_ACTIVE (259).

Original-PR: #447
Co-Authored-By: Johann Dirry <johann.dirry@microsea.at>
2026-01-13 20:59:15 -08:00

21 lines
360 B
Go

//go:build !windows
package cmd
import "syscall"
// isProcessRunning checks if a process with the given PID exists.
func isProcessRunning(pid int) bool {
if pid <= 0 {
return false
}
err := syscall.Kill(pid, 0)
if err == nil {
return true
}
// EPERM means process exists but we don't have permission to signal it.
return err == syscall.EPERM
}