From 7633cb8556075bce48644e6784fd1b003236f0b7 Mon Sep 17 00:00:00 2001 From: ouqiang Date: Mon, 29 May 2017 15:30:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=B3=E9=94=AE=E5=87=BA=E5=85=A5=E5=8F=A3?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0panic=E6=8D=95=E8=8E=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/web.go | 5 ++++- modules/rpc/client/client.go | 6 ++++++ service/task.go | 5 +++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/cmd/web.go b/cmd/web.go index 43cda38..07852c1 100644 --- a/cmd/web.go +++ b/cmd/web.go @@ -89,7 +89,10 @@ func becomeDaemon(ctx *cli.Context) { cmd.Stdin = os.Stdin cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr - cmd.Start() + err := cmd.Start() + if err != nil { + logger.Fatal("创建守护进程失败", err) + } // 父进程退出, 子进程由init-1号进程收养 os.Exit(0) diff --git a/modules/rpc/client/client.go b/modules/rpc/client/client.go index 86ca5ec..5f7eafc 100644 --- a/modules/rpc/client/client.go +++ b/modules/rpc/client/client.go @@ -9,9 +9,15 @@ import ( "github.com/ouqiang/gocron/modules/rpc/grpcpool" "google.golang.org/grpc/codes" "google.golang.org/grpc" + "github.com/ouqiang/gocron/modules/logger" ) func Exec(ip string, port int, taskReq *pb.TaskRequest) (string, error) { + defer func() { + if err := recover(); err != nil { + logger.Error("panic#rpc/client.go:Exec#", err) + } + } () addr := fmt.Sprintf("%s:%d", ip, port) conn, err := grpcpool.Pool.Get(addr) if err != nil { diff --git a/service/task.go b/service/task.go index ed9ef51..20fa36e 100644 --- a/service/task.go +++ b/service/task.go @@ -302,6 +302,11 @@ func SendNotification(taskModel *models.TaskHost, taskResult TaskResult) { // 执行具体任务 func execJob(handler Handler, taskModel *models.TaskHost) TaskResult { + defer func() { + if err := recover(); err != nil { + logger.Error("panic#service/task.go:execJob#", err) + } + } () if taskModel.Multi == 0 { defer runInstance.done(taskModel.Id) }