【发布时间】:2017-07-21 23:15:50
【问题描述】:
我写了简单的 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 服务,它就不起作用了。
如何使用检测到的$GOPATH 运行 systemd 服务? (没有由命令go build...创建的二进制文件)
【问题讨论】:
标签: go systemd systemctl gopath