forked from go/golangs_learn
VIVIMAN
3 years ago
3 changed files with 70 additions and 3 deletions
@ -0,0 +1,66 @@ |
|||
package main |
|||
|
|||
import ( |
|||
"github.com/kardianos/service" |
|||
"log" |
|||
"os" |
|||
"time" |
|||
) |
|||
|
|||
type program struct{} |
|||
|
|||
func (p *program) Start(s service.Service) error { |
|||
go p.run() |
|||
return nil |
|||
} |
|||
|
|||
func (p *program) run() { |
|||
for { |
|||
time.Sleep(time.Second) |
|||
log.Println("running") |
|||
} |
|||
} |
|||
|
|||
func (p *program) Stop(s service.Service) error { |
|||
return nil |
|||
} |
|||
|
|||
func init() { |
|||
f, err := os.Create("d:/gowinservice.txt") |
|||
if err != nil { |
|||
log.Fatal(err) |
|||
} |
|||
log.SetOutput(f) |
|||
} |
|||
|
|||
func main() { |
|||
svcConfig := &service.Config{ |
|||
Name: "GoService", |
|||
DisplayName: "GoServiceDis", |
|||
Description: "windows service form golang", |
|||
} |
|||
|
|||
prg := &program{} |
|||
s, err := service.New(prg, svcConfig) |
|||
if err != nil { |
|||
log.Fatal(err) |
|||
} |
|||
|
|||
if len(os.Args) > 1 { |
|||
if os.Args[1] == "install" { |
|||
s.Install() |
|||
log.Println("服务安装成功") |
|||
return |
|||
} |
|||
|
|||
if os.Args[1] == "remove" { |
|||
s.Uninstall() |
|||
log.Println("服务卸载成功") |
|||
return |
|||
} |
|||
} |
|||
|
|||
if err = s.Run(); err != nil { |
|||
log.Fatal(err) |
|||
} |
|||
} |
Loading…
Reference in new issue