github.com/zly-app/zapp@v1.3.3/deamon.go (about) 1 /* 2 ------------------------------------------------- 3 Author : zlyuancn 4 date: 2021/2/19 5 Description : 6 ------------------------------------------------- 7 */ 8 9 package zapp 10 11 import ( 12 "flag" 13 "os" 14 15 "github.com/takama/daemon" 16 "go.uber.org/zap" 17 18 "github.com/zly-app/zapp/logger" 19 ) 20 21 func (app *appCli) enableDaemon() { 22 if !app.opt.EnableDaemon || len(os.Args) < 2 { 23 return 24 } 25 26 flag.String("install", "", "安装服务, string 是运行时传递给 app 的参数, 请不要使用相对路径") 27 flag.Bool("remove", false, "移除服务") 28 flag.Bool("start", false, "启动服务") 29 flag.Bool("stop", false, "停止服务") 30 flag.Bool("status", false, "查看运行状态") 31 32 switch os.Args[1] { 33 case "install": 34 case "remove": 35 case "start": 36 case "stop": 37 case "status": 38 default: 39 return 40 } 41 42 d, err := daemon.New(app.name, app.name, daemon.SystemDaemon) 43 if err != nil { 44 logger.Log.Fatal("守护进程模块创建失败", zap.Error(err)) 45 } 46 47 var out string 48 switch os.Args[1] { 49 case "install": 50 out, err = d.Install(os.Args[2:]...) 51 case "remove": 52 out, err = d.Remove() 53 case "start": 54 out, err = d.Start() 55 case "stop": 56 out, err = d.Stop() 57 case "status": 58 out, err = d.Status() 59 } 60 61 if err != nil { 62 logger.Log.Error(out, zap.Error(err)) 63 os.Exit(1) 64 } 65 66 logger.Log.Info(out) 67 os.Exit(0) 68 }