Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
snail007
GitHub Repository: snail007/goproxy
Path: blob/master/main.go
684 views
1
package main
2
3
import (
4
"fmt"
5
"github.com/snail007/goproxy/services"
6
"log"
7
"os"
8
"os/signal"
9
"syscall"
10
)
11
12
const APP_VERSION = "3.0"
13
14
func main() {
15
err := initConfig()
16
if err != nil {
17
log.Fatalf("err : %s", err)
18
}
19
Clean(&service.S)
20
}
21
func Clean(s *services.Service) {
22
signalChan := make(chan os.Signal, 1)
23
cleanupDone := make(chan bool)
24
signal.Notify(signalChan,
25
os.Interrupt,
26
syscall.SIGHUP,
27
syscall.SIGINT,
28
syscall.SIGTERM,
29
syscall.SIGQUIT)
30
go func() {
31
for _ = range signalChan {
32
fmt.Println("\nReceived an interrupt, stopping services...")
33
(*s).Clean()
34
cleanupDone <- true
35
}
36
}()
37
<-cleanupDone
38
}
39
40