Golang書き込みWindowsサービス



Golang Write Windows Service



package main import ( 'fmt' 'log' 'github.com/kardianos/service' ) var serviceConfig = &service.Config{ Name: 'serviceName', DisplayName: 'service Display Name', Description: 'service description', } func main() { // Build the service object prog := &Program{} s, err := service.New(prog, serviceConfig) if err != nil { log.Fatal(err) } // Used to record system logs logger, err := s.Logger(nil) if err != nil { log.Fatal(err) } if len(os.Args) <2 { err = s.Run() if err != nil { logger.Error(err) } return } cmd := os.Args[1] if cmd == 'install' { err = s.Install() if err != nil { log.Fatal(err) } fmt.Println('installation successful') } if cmd == 'uninstall' { err = s.Uninstall() if err != nil { log.Fatal(err) } fmt.Println('Uninstall successful') } // Another way to implement install, uninstall, start, stop // err = service.Control(s, os.Args[1]) // if err != nil { // log.Fatal(err) // } } type Program struct{} func (p *Program) Start(s service.Service) error { log.Println('Start service') go p.run() return nil } func (p *Program) Stop(s service.Service) error { log.Println('Stop service') return nil } func (p *Program) run() { // Write specific service code here }