<- back

Creating custom systemd services

From time to time I stumble upon some server application I want running on my virtual server, be it an anki sync service or a custom-written discord bot. Most of the time I start by running it in a tmux session for several days to see how well it performs and then I write a systemd service, so it works just like a regular daemon app. Here’s how I achieve this.

Let’s assume that our server’s start script is located at /home/user/service/start.sh. Then, our service file should be something like this:

[Unit]
Description=A wonderful service of my own.
After=nginx.service

[Service]
User=username
Group=username
ExecStart=bash start.sh
WorkingDirectory=/home/user/service

[Install]
WantedBy=default.target

Put it into /home/user/service/our-service.service file an you should be good to go. I’ve added After=nginx.service because most of the time I put my services behind nginx reverse proxy.

To install the service copy it to /etc/systemd/system and enable it with sudo systemctl enable our-service.service. To start the service use sudo systemctl start our-service.service.