From 633e26b1de1cbb977759ac976ac5554d5ffbe7b2 Mon Sep 17 00:00:00 2001 From: ssongliu <73214554+ssongliu@users.noreply.github.com> Date: Tue, 6 Jun 2023 18:29:22 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=B7=A5=E4=BD=9C=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=E5=88=87=E6=8D=A2=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9=20(#1269?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/service/cronjob_helper.go | 12 +----------- backend/utils/cmd/cmd.go | 3 ++- frontend/src/views/cronjob/record/index.vue | 21 ++++++++++++++++----- 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/backend/app/service/cronjob_helper.go b/backend/app/service/cronjob_helper.go index 307cab66b..ce2cc7ac3 100644 --- a/backend/app/service/cronjob_helper.go +++ b/backend/app/service/cronjob_helper.go @@ -79,20 +79,10 @@ func (u *CronjobService) handleShell(cronType, cornName, script string) ([]byte, return nil, err } } - oldDir, err := os.Getwd() + stdout, err := cmd.ExecCronjobWithTimeOut(script, handleDir, 24*time.Hour) if err != nil { return nil, err } - if err := os.Chdir(handleDir); err != nil { - return nil, err - } - stdout, err := cmd.ExecCronjobWithTimeOut(script, 24*time.Hour) - if err != nil { - return nil, err - } - if err := os.Chdir(oldDir); err != nil { - return nil, err - } return []byte(stdout), nil } diff --git a/backend/utils/cmd/cmd.go b/backend/utils/cmd/cmd.go index 82629c09e..d88fa3fed 100644 --- a/backend/utils/cmd/cmd.go +++ b/backend/utils/cmd/cmd.go @@ -67,10 +67,11 @@ func ExecWithTimeOut(cmdStr string, timeout time.Duration) (string, error) { return stdout.String(), nil } -func ExecCronjobWithTimeOut(cmdStr string, timeout time.Duration) (string, error) { +func ExecCronjobWithTimeOut(cmdStr string, workdir string, timeout time.Duration) (string, error) { ctx, cancel := context.WithTimeout(context.Background(), timeout) defer cancel() cmd := exec.Command("bash", "-c", cmdStr) + cmd.Dir = workdir var stdout, stderr bytes.Buffer cmd.Stdout = &stdout cmd.Stderr = &stderr diff --git a/frontend/src/views/cronjob/record/index.vue b/frontend/src/views/cronjob/record/index.vue index 082a39abc..056b6bec1 100644 --- a/frontend/src/views/cronjob/record/index.vue +++ b/frontend/src/views/cronjob/record/index.vue @@ -231,12 +231,23 @@ {{ $t('cronjob.exclusionRules') }} -