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