From 14c91c5a7c24ab10ca5a5a081f4300457df37913 Mon Sep 17 00:00:00 2001 From: forging2012 Date: Fri, 19 Mar 2021 11:59:04 +0800 Subject: [PATCH] =?UTF-8?q?Update=20README.md=20=E4=BF=AE=E6=AD=A3example/?= =?UTF-8?q?auto=5Frestart.go=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index bd38ebc..ce07058 100644 --- a/README.md +++ b/README.md @@ -39,30 +39,42 @@ func main() { 请参考 example/auto_restart.go ```go -//本示例, 将把进程转为后台运行, 并保留所有参数不变 +//本示例, 将启动一个后台运行的守护进程. 然后由守护进程启动和维护最终子进程 package main import ( "github.com/zh-five/xdaemon" + "flag" "log" "os" "time" ) func main() { - logFile := "daemon.log" + d := flag.Bool("d", false, "是否后台守护进程方式运行") + flag.Parse() - //启动一个子进程后主程序退出 - xdaemon.Background(logFile, true) + //启动守护进程 + if *d { + //创建一个Daemon对象 + logFile := "daemon.log" + d := xdaemon.NewDaemon(logFile) + //调整一些运行参数(可选) + d.MaxCount = 2 //最大重启次数 - //以下代码只有子程序会执行 + //执行守护进程模式 + d.Run() + } + + //当 *d = true 时以下代码只有最终子进程会执行, 主进程和守护进程都不会执行 log.Println(os.Getpid(), "start...") time.Sleep(time.Second * 10) log.Println(os.Getpid(), "end") + } ``` ## 3.本次开发过程的博客记录 -[https://zhuanlan.zhihu.com/p/146192035](https://zhuanlan.zhihu.com/p/146192035) \ No newline at end of file +[https://zhuanlan.zhihu.com/p/146192035](https://zhuanlan.zhihu.com/p/146192035)