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) }