GOLANG Windows服务 貌似有问题

hellsam · · 829 次点击
``` func (p *program) Start(s service.Service) error { go p.run() return nil } 改成 func (p *program) Start(s service.Service) error { p.service = s go p.run() return nil } ```
#1
更多评论
<a href="/user/victorl" title="@victorl">@victorl</a> 问下 p.service 没有这个service函数啊
#2
我这样写是可以的 ```go package main import ( &#34;flag&#34; &#34;log&#34; &#34;os&#34; &#34;github.com/kardianos/service&#34; ) type program struct { service service.Service } func (p *program) Start(s service.Service) error { p.service = s go p.run() return nil } func (p *program) run() { defer func() { if service.Interactive() { p.Stop(p.service) } else { p.service.Stop() } }() // to do ... } func (p *program) Stop(s service.Service) error { if service.Interactive() { os.Exit(0) } return nil } func main() { flag.Parse() svcConfig := &amp;service.Config{ Name: &#34;***&#34;, //服务显示名称 DisplayName: &#34;***&#34;, //服务名称 Description: &#34;***&#34;, //服务描述 } prg := &amp;program{} s, err := service.New(prg, svcConfig) if err != nil { log.Fatalln(err) } if len(os.Args) &gt; 1 { if flag.Arg(0) == &#34;install&#34; { err := s.Install() if err != nil { log.Println(&#34;服务安装失败&#34;) return } log.Println(&#34;服务安装成功&#34;) return } if flag.Arg(0) == &#34;uninstall&#34; { err := s.Uninstall() if err != nil { log.Println(&#34;服务卸载失败&#34;) return } log.Println(&#34;服务卸载成功&#34;) return } } err = s.Run() if err != nil { log.Println(err) } } ```
#3