我寫了簡單的systemd服務文件goserver.service
:Systemd沒有檢測GOPATH(無二進制文件運行)
[Unit]
Description=Goserver
[Service]
ExecStart=/usr/bin/go run /home/denis/goserver/index.go
[Install]
WantedBy=multi-user.target
但是當我嘗試運行服務,並獲取狀態:
$ sudo systemctl status goserver.service
我得到錯誤:
мар 02 12:28:04 DV go[13627]: home/denis/goserver/index.go:6:2: cannot find package "gopkg.in/mgo.v2" in any of:
мар 02 12:28:04 DV go[13627]: /usr/lib/go-1.6/src/gopkg.in/mgo.v2 (from $GOROOT)
мар 02 12:28:04 DV go[13627]: ($GOPATH not set)
但$GOPATH
設置與export
命令:
$ export GOPATH="/home/denis/goserver/"
$ ls $GOPATH
goserver.log index.go pkg src templates
而且從命令行命令正常工作:
$ /usr/bin/go run /home/denis/goserver/index.go
但是,如果使用systemd服務這是行不通的。
如何使用檢測到的$GOPATH
運行systemd服務? (不通過命令go build...
創建的二進制文件)