Golang Web应用程序和系统服务出现问题

hpcdzsge  于 2022-10-04  发布在  Go
关注(0)|答案(2)|浏览(153)

我正在尝试使用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
acruukt9

acruukt91#

围棋是一种汇编语言。您需要使用go build命令将您的代码构建为一个可执行的二进制文件,然后通过单元文件中的ExecStart属性将二进制文件的路径指定给system d。

请参阅Go Documentation,特别是Compile and install the application部分,以了解有关如何编译应用程序的更多信息。

在您的示例中,您有ExecStart=/home/.../goapp/main.go,它告诉system d运行源代码文件。该文件不能被操作系统执行和理解,因此它无法执行,因此SYSTEM D单元也因此而失败。

rhfm7lfc

rhfm7lfc2#

将工作目录添加到系统d以修复该错误。系统工作目录定义了相对于服务根目录的目录。

Description=goapp

[Service]
Type=simple
Restart=always
RestartSec=
WorkingDirectory=/home/.../goapp
ExecStart=/home/.../goapp/main

[Install]
WantedBy=multi-user.target

相关问题