Create systemd service – daemon (Ubuntu 15+)


Start by creating a file: /etc/systemd/system/CUSTOM_SERVICE_NAME.service with the following content:




Enable the service. It will start automatically on boot, after that.

$ sudo systemctl enable CUSTOM_SERVICE_NAME.service

Check status/start/stop/restart

$ sudo systemctl {status|start|stop|restart} CUSTOM_SERVICE_NAME

A complete list with all available directives that can be used inside the service file can be found here


  • CUSTOM_SERVICE_DESCRIPTION – a short description for the current service
  • CUSTOM_SERVICE_NAME – the name of service
  • EXEC_FILE – exec file name with the absolute path

Example 1 for a webservice written in Golang

You must have a new folder api in the root /home/ubuntu/. The main file it’s the binary file resulted after go compilation. In my example I use flags to set environment --env=dev, this is not mandatory.

Description= Go API Webservice Example

ExecStart=/home/ubuntu/api/main --env=dev


Example 2 for a javascript

You must have create a web folder into /home/ubuntu/ root folder. The npm must be installed before and use the absolute path in ExecStart command, as you can see in the below example /usr/bin/npm.

Description=Javascript Web Application Example

ExecStart=/usr/bin/npm run start


Usefull command

$ service --status-all – display all services

  • [ + ] for running services
  • [ – ] for stopped services
  • [ ? ] for services without a ‘status’ command

Leave a Reply

Your email address will not be published.

%d bloggers like this: