MCPcopy Create free account
hub / github.com/astercloud/aster / waitForProcessExit

Method waitForProcessExit

pkg/tools/builtin/task_manager.go:444–466  ·  view source on GitHub ↗

waitForProcessExit 等待进程退出

(task *TaskInfo, timeout int)

Source from the content-addressed store, hash-verified

442
443// waitForProcessExit 等待进程退出
444func (tm *FileTaskManager) waitForProcessExit(task *TaskInfo, timeout int) {
445 time.Sleep(time.Duration(timeout) * time.Second)
446
447 tm.mu.Lock()
448 defer tm.mu.Unlock()
449
450 if task.Status == "killed" {
451 // 检查进程是否真的退出了
452 proc, err := os.FindProcess(task.PID)
453 if err == nil {
454 err = proc.Signal(syscall.Signal(0))
455 if err != nil {
456 // 进程已退出
457 now := time.Now()
458 task.EndTime = &now
459 task.Duration = now.Sub(task.StartTime)
460 task.Status = "completed"
461 task.LastUpdate = now
462 _ = tm.saveTask(task)
463 }
464 }
465 }
466}
467
468// saveTask 保存任务信息到文件
469func (tm *FileTaskManager) saveTask(task *TaskInfo) error {

Callers 1

KillTaskMethod · 0.95

Calls 2

saveTaskMethod · 0.95
DurationMethod · 0.45

Tested by

no test coverage detected