1234567891011121314151617181920212223242526272829303132333435363738 |
- package main
- import (
- "fmt"
- "github.com/snail007/goproxy/services"
- "log"
- "os"
- "os/signal"
- "syscall"
- )
- const APP_VERSION = "3.0"
- func main() {
- err := initConfig()
- if err != nil {
- log.Fatalf("err : %s", err)
- }
- Clean(&service.S)
- }
- func Clean(s *services.Service) {
- signalChan := make(chan os.Signal, 1)
- cleanupDone := make(chan bool)
- signal.Notify(signalChan,
- os.Interrupt,
- syscall.SIGHUP,
- syscall.SIGINT,
- syscall.SIGTERM,
- syscall.SIGQUIT)
- go func() {
- for _ = range signalChan {
- fmt.Println("\nReceived an interrupt, stopping services...")
- (*s).Clean()
- cleanupDone <- true
- }
- }()
- <-cleanupDone
- }
|