小编Ден*_*аль的帖子

Systemd没有检测到GOPATH(没有二进制文件运行)

我写了简单的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...)

go systemd systemctl gopath

1
推荐指数
2
解决办法
533
查看次数

标签 统计

go ×1

gopath ×1

systemctl ×1

systemd ×1