feat(WindowsSrvc): Implemented Base of service
This commit is contained in:
parent
25eca89a1f
commit
cd700be26c
1 changed files with 39 additions and 0 deletions
39
Service/WindowsService.go
Normal file
39
Service/WindowsService.go
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
package Service
|
||||
|
||||
import (
|
||||
"github.com/judwhite/go-svc"
|
||||
"log"
|
||||
"sync"
|
||||
)
|
||||
|
||||
type program struct {
|
||||
wg sync.WaitGroup
|
||||
quit chan struct{}
|
||||
}
|
||||
|
||||
//TODO: replace all the 'log' crap with an actual logger.
|
||||
|
||||
func (p *program) Init(env svc.Environment) error {
|
||||
log.Printf("is win service? %v\n", env.IsWindowsService())
|
||||
return nil
|
||||
}
|
||||
|
||||
func (p *program) Start() error {
|
||||
p.quit = make(chan struct{})
|
||||
|
||||
p.wg.Add(1)
|
||||
go func() {
|
||||
//Do stuff
|
||||
}()
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (p *program) Stop() error {
|
||||
log.Println("Stopping...")
|
||||
close(p.quit)
|
||||
p.wg.Wait()
|
||||
log.Println("Stopped.")
|
||||
|
||||
return nil
|
||||
}
|
||||
Reference in a new issue