Ubuntu 创建使用go模块的服务

Ubuntu 创建使用go模块的服务,ubuntu,go,service,Ubuntu,Go,Service,我正试图在DO上的一个ubuntuvps实例上部署一个Go应用程序。我需要创建一个服务,但我能找到的唯一示例包括使用GOPATH,如中所示 由于模块的出现,我不需要使用GOPATH,而且我的服务器上也没有安装Go 如何更改此代码以创建一个服务来运行Go应用程序,而不使用GOPATH [Unit] Description= instance to serve api Requires=mysql.service After=network.target After=mysql.service[Se

我正试图在DO上的一个ubuntuvps实例上部署一个Go应用程序。我需要创建一个服务,但我能找到的唯一示例包括使用
GOPATH
,如中所示

由于模块的出现,我不需要使用
GOPATH
,而且我的服务器上也没有安装
Go

如何更改此代码以创建一个服务来运行Go应用程序,而不使用
GOPATH

[Unit]
Description= instance to serve api
Requires=mysql.service
After=network.target
After=mysql.service[Service]
User=root
Group=www-data
Environment=GOPATH=/srv/api/
ExecStart=/srv/api/myapp[Install]
WantedBy=multi-user.target
编辑:这个文件有效

[Unit]
Description= instance to serve api
ConditionPathExists=/srv/api/myapp-api
Requires=mysql.service
After=network.target
After=mysql.service

[Service]
Type=simple
AmbientCapabilities=CAP_SYS_RAWIO
User=nobody
Group=www-data
LimitNOFILE=1024

WorkingDirectory=/srv/api
ExecStart=/srv/api/myapp-api

StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=myapp-api

[Install]
WantedBy=multi-user.target

不需要
GOPATH
。只要设置
ExecStart
WorkingDirectory
(如果有意义的话)


您是否计划在此实例上构建go应用程序?go应用程序一旦构建,GOPATH就毫无意义,除非该应用程序明确使用它。不,该应用程序是在我的本地开发机器上构建的,并且是vps的scp。虽然该应用程序在我的本地GOPATH中,但我已将其转换为使用模块。我可以删除这行代码,今天就到此为止吗?正如我所说,二进制文件不需要GOPATH,除非出于某种原因它显式地检查它,这是不可能的。所以,它应该在没有GOPATH的情况下工作。