//go:build windows // +build windows package service import ( "os" "os/signal" ) // signalNotify 在 Windows 下注册 Ctrl+C。 // // 注意:SCM 控制的服务不通过信号停止,而是通过 svc.ChangeRequest。 // 这个函数只对控制台前台模式(RunForeground)有意义。 // 若编译时使用了 -H windowsgui(隐藏控制台),前台模式将无法响应 Ctrl+C, // // 只能通过任务管理器结束进程 - 这是预期行为。 func signalNotify(ch chan<- os.Signal) { signal.Notify(ch, os.Interrupt) }