用golang实现 注册服务,安装服务,删除服务
package main import ( "github.com/astaxie/beego" "github.com/kardianos/service" "os" ) var logger = service.ConsoleLogger type program struct{} func (p *program) Start(s service.Service) error { go p.run() return nil } func (p *program) run() { beego.Run() // 运行逻辑 } func (p *program) Stop(s service.Service) error { return nil } func main() { svcConfig := &service.Config{ Name: "Trim", //服务显示名称 DisplayName: "Trim Service", //服务名称 Description: "微服务", //服务描述 } prg := &program{} s, err := service.New(prg, svcConfig) if err != nil { logger.Error(err) } if err != nil { logger.Error(err) } if len(os.Args) > 1 { switch os.Args[1] { case "install": s.Install() logger.Info("服务安装成功!") s.Start() logger.Info("服务启动成功!") break case "start": s.Start() logger.Info("服务启动成功!") break case "stop": s.Stop() logger.Info("服务关闭成功!") break case "restart": s.Stop() logger.Info("服务关闭成功!") s.Start() logger.Info("服务启动成功!") break case "remove": s.Stop() logger.Info("服务关闭成功!") s.Uninstall() logger.Info("服务卸载成功!") break } return } err = s.Run() if err != nil { logger.Error(err) } }
编译运行
如果编译提示找不到 golang.org\x\sys\windows\registry 库的话,就是 墙的问题了......
就去 https://gitee.com/bandung/golang.org 下载库的压缩包放到src目录下
服务的属性默认是自动的,就是开机自动启动
!!!