我写了简单的 systemd 服务文件goserver.service
:
[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 服务,它就不起作用。
如何在检测到的情况下运行 systemd 服务$GOPATH
?(没有由命令创建的二进制文件go build...
)