Creating a Basic Linux Service Using Systemd (28/9/18)

When I started deploying web app on my server, I ran it using nohup instead of running it as a service. I did it because I thought making a service is hard. Apparently, I was wrong.

Since Ubuntu server uses Systemd, there are several steps to create and start a service. First of all, create a service file in /etc/systemd/system. For example here I want to run Caddy as a service, so I create file named caddy.service with following content :

[Unit]
Description=Starts the Caddy server
Requires=network.target
After=network.target

[Service]
Type=simple
User=radhi
Restart=always
RestartSec=3
WorkingDirectory=/home/radhi/caddy
ExecStart=/home/radhi/go/bin/caddy

[Install]
WantedBy=multi-user.target

Once finished, save it, then reload Systemd configuration by running :

sudo systemctl daemon-reload

After it finished, we can enable and start the service by running :

sudo systemctl enable caddy
sudo systemctl start caddy