Systemd is a Linux software suite that handles system services (daemon) and timers; it enables you to start, stop and restart your application using systemctl command. It can also start your application during operating systems boot-up sequence.
Note that you will need to have root or sudo privileges for this operation.
To create a systemd unit file, create a service file inside the directory /etc/systemd/system/. The filename must end with .service for example:
/etc/systemd/system/awesome-go-web-application.service
Below is the sample template for a systemd unit file.
# Systemd unit file for example application [Unit] Description=Service Description After=syslog.target network.target [Service] Type=simple Restart=always RestartSec=30s User=user Group=group WorkingDirectory=/path/to/working-directory ExecStart=/path/to/working-directory/./golang-application [Install] WantedBy=multi-user.target
References
https://wiki.debian.org/systemd
https://access.redhat.com/sites/default/files/attachments/12052018_systemd_6.pdf