diff --git a/pkg/nodes/registry_server.go b/pkg/nodes/registry_server.go index b92238f..841f41e 100644 --- a/pkg/nodes/registry_server.go +++ b/pkg/nodes/registry_server.go @@ -19,7 +19,6 @@ import ( "strconv" "strings" "sync" - "syscall" "time" cfgpkg "clawgo/pkg/config" @@ -357,7 +356,7 @@ func (s *RegistryServer) handleWebUIConfig(w http.ResponseWriter, r *http.Reques if s.onConfigAfter != nil { s.onConfigAfter() } else { - _ = syscall.Kill(os.Getpid(), syscall.SIGHUP) + _ = requestSelfReloadSignal() } _ = json.NewEncoder(w).Encode(map[string]interface{}{"ok": true, "reloaded": true}) default: diff --git a/pkg/nodes/reload_unix.go b/pkg/nodes/reload_unix.go new file mode 100644 index 0000000..73fcd3e --- /dev/null +++ b/pkg/nodes/reload_unix.go @@ -0,0 +1,12 @@ +//go:build !windows + +package nodes + +import ( + "os" + "syscall" +) + +func requestSelfReloadSignal() error { + return syscall.Kill(os.Getpid(), syscall.SIGHUP) +} diff --git a/pkg/nodes/reload_windows.go b/pkg/nodes/reload_windows.go new file mode 100644 index 0000000..a0e28fe --- /dev/null +++ b/pkg/nodes/reload_windows.go @@ -0,0 +1,8 @@ +//go:build windows + +package nodes + +// requestSelfReloadSignal is a no-op on Windows (no SIGHUP semantics). +func requestSelfReloadSignal() error { + return nil +}