I am trying to create a Golang server using the gin framework on ubuntu. It works fine when it is executed in the terminal after building it with go build and equally works well locally.
Systemd
Description=goapp [Service] Type=simple Restart=always RestartSec=5s ExecStart=/home/.../goapp/main [Install] WantedBy=multi-user.target
I got this error
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
Advertisement
Answer
Add a working directory to the systemd to fix the error. The systemd WorkingDirectory defines the directory relative to the service’s root directory.
Description=goapp [Service] Type=simple Restart=always RestartSec= WorkingDirectory=/home/.../goapp ExecStart=/home/.../goapp/main [Install] WantedBy=multi-user.target
6 People found this is helpful