查询进程状态

Querying ProcessState

我有一个简单的程序,运行一个 exe,然后检查 Exited 值,但它给我一个 "panic: runtime error: invalid memory address or nil pointer dereference" 错误,知道为什么吗?

package main

import (
    "fmt"
    "os/exec"
    "time"
)

func main() {
    prog:= exec.Command("path\to\exe")
    prog.Dir = "path\to"
    go prog.Run()
    fmt.Println(prog.ProcessState.Exited())
    time.Sleep(500 * time.Second)
}

documentation says:

ProcessState contains information about an exited process available after a call to Wait or Run.

主 goroutine 在 ProcessState 字段通过调用 goroutine 中的 运行() 设置为非零值之前访问该字段。结果调用 Exited() 出现恐慌。

一个简单的解决方法是从主 goroutine 调用 运行()。