为什么golang exec无法获取java pid

Linux shell 获取 java pid


$pgrep -u admin java

1866

去代码 test.go


package main


import (

    "fmt"

    "os/exec"

)


func main() {

    ret, err := exec.Command("pgrep", "-u ", "admin", "java").CombinedOutput()

    if err != nil {

        fmt.Println(err)

        return

    }

    fmt.Println(string(ret))


}


去运行 test.go


$go run test.go

exit status 2

问题是为什么linux shell可以获取java pid,但是go call exec却不能获取java pid


去版本:


$go version

go version go1.4.2 linux/amd64

操作系统信息


redhat 7.0 


守候你守候我
浏览 74回答 2
2回答

互换的青春

尝试使用"-u"而不是"-u ".

收到一只叮咚

这看起来像“exec.Command 找不到 pgrep”。您可以通过添加以下内容来检查这一点:path, err := exec.LookPath("pgrep")if err != nil {    fmt.Printf("Could not find pgrep, err: %v\n", err)} else {    fmr.Printf("The path to pgrep is %s\n", path)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go