我写了简单的systemd服务文件goserver.service:
[Unit]
Description=Goserver
[Service]
ExecStart=/usr/bin/go run /home/denis/goserver/index.go
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
但是当我尝试运行服务并获取状态时:
$ sudo systemctl status goserver.service
Run Code Online (Sandbox Code Playgroud)
我收到错误:
??? 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)
Run Code Online (Sandbox Code Playgroud)
但是$GOPATH使用export命令设置:
$ export GOPATH="/home/denis/goserver/"
$ ls $GOPATH
goserver.log index.go pkg src templates
Run Code Online (Sandbox Code Playgroud)
命令行中的这个命令工作正常:
$ /usr/bin/go run /home/denis/goserver/index.go
Run Code Online (Sandbox Code Playgroud)
但是,如果我使用systemd服务它不起作用.
如何在检测到的情况下运行systemd服务$GOPATH?(没有命令创建的二进制文件go build...)