hostSync/cmd/service_windows.go

31 lines
696 B
Go

//go:build windows
// +build windows
package cmd
import (
"fmt"
"github.com/evil7/hostsync/service"
"github.com/evil7/hostsync/utils"
"golang.org/x/sys/windows/svc"
)
// tryRunAsSystemService 尝试作为系统服务运行 (Windows)
func tryRunAsSystemService() (bool, error) {
isWindowsService, err := svc.IsWindowsService()
if err != nil {
return false, fmt.Errorf("检查服务环境失败: %v", err)
}
if isWindowsService {
// 作为 Windows 服务运行
utils.LogInfo("作为 Windows 服务启动...")
if err := service.RunAsWindowsService(); err != nil {
return false, fmt.Errorf("windows 服务运行失败: %v", err)
}
return true, nil
}
return false, nil
}