我試圖通過我的ubuntu上的「upstart」運行一個go命令。Golang - 當通過Upstart運行時找不到命令「go」
我新貴腳本是
script
go run /home/myhome/gocode/src/program/hello.go
end script
它不工作,我檢查日誌文件和它說
/bin/sh: 1: /bin/sh: go: not found
我可以使用任何用戶名命令行中運行「走出去」。我該如何解決?
我試圖通過我的ubuntu上的「upstart」運行一個go命令。Golang - 當通過Upstart運行時找不到命令「go」
我新貴腳本是
script
go run /home/myhome/gocode/src/program/hello.go
end script
它不工作,我檢查日誌文件和它說
/bin/sh: 1: /bin/sh: go: not found
我可以使用任何用戶名命令行中運行「走出去」。我該如何解決?
您不應該使用go run
來運行您的Go程序。你應該用go build
進行編譯,然後使用Upstart來運行它。
改爲使用exec /path/to/your/binary
。
另見: - Can't Start Golang Prog Via Upstart - https://coderwall.com/p/iekaog - https://groups.google.com/forum/m/#!topic/golang-nuts/uBrN-G7anKg(很多例子)
輸入which go
作爲另一個用戶來找出可執行文件的完整路徑。然後,在您的新貴腳本中,用完整路徑替換go
(例如/usr/local/go/bin
)。
我不知道爲什麼你有這個問題,但也許新貴用戶有一個不同於普通用戶的路徑(即它可能包括/sbin
而不是/usr/bin
)。
我在「etc/profile」中添加了「/ usr/local/go/bin」 - 是不是讓它成爲全系統?但是那也行不通。我也試過「/ etc/environment」 - 沒有成功。 – ericbae
你嘗試過我建議的並編輯你的新貴腳本嗎? –
爲什麼這是低調?我提出了一件有很好工作機會的事情,OP奇怪地做了其他事情,並且有人低估了它。 –
哪裏是你旅途中的二進制位於何處?我猜新貴將PATH設置爲不包含自定義路徑的默認值。 – fuz
/usr/local/go/bin – ericbae
這是行不通的。 Upstart沒有設置PATH或GOROOT。 – fuz