//go:generate goversioninfo
package main
import (
"github.com/kardianos/service"
"io"
"log"
"os"
)
type program struct {}
func (p *program) Start(s service.Service) error {
go p.run()
return nil
}
func (p *program)run() {
// 业务逻辑
}
func (p *program)Stop(s service.Service)error {
return nil
}
func init() {
f, err := os.OpenFile("goWinService.txt", os.O_CREATE | os.O_APPEND | os.O_RDWR, 0666)
if err != nil {
log.Fatal(err)
}
//defer f.Close()
l := io.MultiWriter(os.Stdout,f)
log.SetOutput(l)
}
func main() {
svsConfig := &service.Config{
Name: "幸福里硬件API服务",
DisplayName: "幸福里硬件API服务",
Description: "幸福里硬件API服务",
}
prg := &program{}
s,err := service.New(prg,svsConfig )
if err != nil{
log.Fatal(err)
}
if len(os.Args)>1{
//if os.Args[1]=="install"{
// fmt.Println("服务安装")
// s.Install()
// fmt.Println("服务安装成功")
//}
//if os.Args[1]=="remove"{
// fmt.Println("服务卸载")
// s.Uninstall()
// fmt.Println("服务卸载成功")
//}
//"start", "stop", "restart", "install", "uninstall"
log.Print("执行:" + os.Args[1])
err = service.Control(s, os.Args[1])
if err != nil {
log.Fatal(err)
}
}
err = s.Run()
if err!=nil {
log.Fatal(err)
}
}#注册
./main install
#启动
./main start
#停止
./main stop
#卸载
./main uninstall