diff --git a/backend/conf/config.yml b/backend/conf/config.yml index a5e0b23b..60d2bd41 100644 --- a/backend/conf/config.yml +++ b/backend/conf/config.yml @@ -15,7 +15,7 @@ redis: log: level: info path: "/var/logs/crawlab" - isDeletePeriodically: "Y" + isDeletePeriodically: "N" deleteFrequency: "@hourly" server: host: 0.0.0.0 diff --git a/backend/main.go b/backend/main.go index b49efae7..92863a20 100644 --- a/backend/main.go +++ b/backend/main.go @@ -47,6 +47,8 @@ func main() { panic(err) } log.Info("初始化定期清理日志配置成功") + }else { + log.Info("默认未开启定期清理日志配置") } // 初始化Mongodb数据库 diff --git a/backend/services/task.go b/backend/services/task.go index 0339118a..940f2478 100644 --- a/backend/services/task.go +++ b/backend/services/task.go @@ -136,8 +136,15 @@ func FinishOrCancelTask(ch chan string, cmd *exec.Cmd, t model.Task) { log.Infof("process received signal: %s", signal) if signal == constants.TaskCancel && cmd.Process != nil { + var err error + // 兼容windows + if runtime.GOOS == constants.Windows { + err = cmd.Process.Kill() + } else { + err = syscall.Kill(-cmd.Process.Pid, syscall.SIGKILL) + } // 取消进程 - if err := syscall.Kill(-cmd.Process.Pid, syscall.SIGKILL); err != nil { + if err != nil { log.Errorf("process kill error: %s", err.Error()) debug.PrintStack() @@ -240,7 +247,9 @@ func ExecuteShellCmd(cmdStr string, cwd string, t model.Task, s model.Spider) (e go FinishOrCancelTask(ch, cmd, t) // kill的时候,可以kill所有的子进程 - cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} + if runtime.GOOS != constants.Windows { + cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} + } // 启动进程 if err := StartTaskProcess(cmd, t); err != nil { diff --git a/backend/utils/helpers.go b/backend/utils/helpers.go index 541d9002..8a80e9e8 100644 --- a/backend/utils/helpers.go +++ b/backend/utils/helpers.go @@ -37,6 +37,6 @@ func GetMessage(message redis.Message) *entity.NodeMessage { func Close(c io.Closer) { err := c.Close() if err != nil { - log.WithError(err).Error("关闭资源文件失败。") + //log.WithError(err).Error("关闭资源文件失败。") } }