猿问

Golang webapp 和系统服务的问题

我正在尝试在 ubuntu 上使用 gin 框架创建一个 Golang 服务器。在使用 go build 构建后在终端中执行时它工作正常并且在本地同样工作良好。


系统化


Description=goapp


[Service]

Type=simple

Restart=always

RestartSec=5s

ExecStart=/home/.../goapp/main



[Install]

WantedBy=multi-user.target

我收到这个错误


goapp.service - rediate

Loaded: loaded (/lib/systemd/system/goapp.service; disabled; vendor preset: enabled)

Active: activating (auto-restart) (Result: exit-code) since Thu 2022-09-29 08:14:10 UTC; 66ms ago

Process: 21628 

ExecStart=/home/.../go/goapp/main (code=exited, status=2)

Main PID: 21628 (code=exited, status=2)

CPU: 9ms


精慕HU
浏览 145回答 2
2回答

互换的青春

Go是编译语言。您需要使用命令将代码构建到可执行二进制文件中,然后通过单元文件中的属性go build将二进制文件的路径提供给 systemd 。ExecStart请参阅Go 文档,特别是编译和安装应用程序部分,以了解有关如何编译应用程序的更多信息。在您的示例中,您ExecStart=/home/.../goapp/main.go告诉 systemd 运行源代码文件。该文件不可执行,操作系统无法理解,因此无法执行,systemd 单元因此而失败。

大话西游666

向 systemd 添加工作目录可修复此错误。Description=goapp[Service]Type=simpleRestart=alwaysRestartSec=WorkingDirectory=/home/.../goappExecStart=/home/.../goapp/main[Install]WantedBy=multi-user.target
随时随地看视频慕课网APP

相关分类

Go
我要回答