我正在尝试在Go中向tor发送HUP信号。
command := exec.Command("pidof tor | xargs kill -HUP")
command.Dir = "/bin"
if cmdOut, err := command.CombinedOutput(); err != nil {
log.Panic("There was an error running HUP ", string(cmdOut), err)
panic(err)
}
我尝试了许多版本(有参数/无参数,有/无 Dir 等)但总是返回相同的错误:
2017/06/27 13:36:31 There was an error running HUP exec: "pidof tor | xargs kill -HUP": executable file not found in $PATH
panic: There was an error running HUP exec: "pidof tor | xargs kill -HUP": executable file not found in $PATH
goroutine 1 [running]:
panic(0x639ac0, 0xc42000d260)
/usr/local/go/src/runtime/panic.go:500 +0x1a1
log.Panic(0xc420049f08, 0x3, 0x3)
/usr/local/go/src/log/log.go:320 +0xc9
main.main()
在控制台中运行该命令完美无缺:
root@c8927c4a456e:/go/src/github.com/project# pidof tor | xargs kill -HUP
Jun 27 13:40:07.000 [notice] Received reload signal (hup). Reloading config and resetting internal state.
Jun 27 13:40:07.000 [notice] Read configuration file "/etc/tor/torrc".
这是我的$PATH
root@c8927c4a456e:/go/src/github.com/project# echo $PATH
/go/bin:/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
我之前用git命令做过这个操作,而且一切顺利。我是不是漏掉了什么?