exec: ausführbare Datei nicht in $PATH
Ich bin versucht, senden Sie das signal HUP tor Gehen.
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)
}
Habe ich versucht, zahlreiche version (mit/out args, mit/Dir, ...) und es kommt immer wieder mit dem gleichen Fehler:
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()
Ausführen des Befehls von der Konsole perfekt funktioniert:
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".
Hier meine $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
Ich habe dies zuvor mit dem git-Befehl und es funktioniert nahtlos. Bin ich etwas fehlt ?
InformationsquelleAutor Mathieu Nls | 2017-06-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Pro Dokumentation, die im ersten argument übergeben
exec.Command
ist der name einer ausführbaren Datei, das ist es. Es ist nicht von der shell interpretiert; es ist der name einer ausführbaren Datei, die Sie wollen, um die Gabel. Wenn Sie brauchen, um passieren in den Argumenten, die Sie übergeben können, Sie in zusätzliche ParameterCommand
oder Sie können übergeben Sie das zurückgegebene Objekt hinterher.In deinem Fall, bist du mit zwei Befehlen und der Umleitung des stdout des einen zu dem stdin des anderen. Man könnte dies im rein Gehen (umleiten der Standardausgabe Leser von der einen in die Stdin-writer des anderen), oder Sie konnte sich auf der shell zu tun. Im letzteren Fall, die ausführbare Datei wäre
sh
oderbash
, und die Argumente, wäre["-c", "pidof tor | xargs kill -HUP"]
. Zum Beispiel:InformationsquelleAutor Adrian