-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.go
44 lines (37 loc) · 953 Bytes
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package main
import (
"github.com/journeymidnight/pipa/handler"
"os/signal"
"syscall"
"github.com/journeymidnight/pipa/helper"
"github.com/journeymidnight/pipa/redis"
)
func main() {
helper.SetupGlobalConfig()
logLevel := helper.ParseLevel(helper.Config.LogLevel)
helper.Log = helper.NewFileLogger(helper.Config.LogPath, logLevel)
defer helper.Log.Close()
helper.Log.Info("Pipa start!")
err := redis.Initialize()
if err != nil {
helper.Log.Error("Initialize redis err:", err)
return
}
defer redis.RedisConn.Close()
handler.StartWorker()
signal.Ignore()
signal.Notify(handler.SignalQueue, syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT, syscall.SIGHUP, syscall.SIGUSR1)
for {
s := <-handler.SignalQueue
switch s {
case syscall.SIGHUP:
helper.SetupGlobalConfig()
case syscall.SIGUSR1:
// TODO: Dump something?
default:
// TODO: Stop pipa server with graceful shutdown
handler.Stop()
return
}
}
}