创建用于使用go模块的服务

问题描述 投票:0回答:1

我正在尝试在DO的Ubuntu VPS实例上部署Go应用程序。我需要创建一个服务,但是唯一可以找到的示例包括GOPATH的使用,例如this tutorial

由于模块的问世,我不需要使用GOPATH,并且我的服务器上没有安装Go

如何更改此代码以创建服务来运行不带GOPATH的Go应用?

[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
ubuntu go service
1个回答
1
投票

不需要GOPATH。只需设置ExecStartWorkingDirectory(如果有意义)。

https://fabianlee.org/2017/05/21/golang-running-a-go-binary-as-a-systemd-service-on-ubuntu-16-04/

© www.soinside.com 2019 - 2024. All rights reserved.