Create systemd service — daemon (Ubuntu 15+)

Bogdan Alexandru Militaru
1 min readFeb 18, 2018

--

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

[Unit]
Description=CUSTOM_SERVICE_DESCRIPTION

[Service]
ExecStart=/opt/www/EXEC_FILE
WorkingDirectory=/opt/www
Restart=always

[Install]
WantedBy=multi-user.target

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

Legend

  • 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.

[Unit]
Description= Go API Webservice Example

[Service]
ExecStart=/home/ubuntu/api/main --env=dev
WorkingDirectory=/home/ubuntu/api
Restart=always

[Install]
WantedBy=multi-user.target

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.

[Unit]
Description=Javascript Web Application Example

[Service]
ExecStart=/usr/bin/npm run start
WorkingDirectory=/home/ubuntu/web/
Restart=always

[Install]
WantedBy=multi-user.target

Usefull command

$ service --status-all - display all services

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

Originally published at https://whyboobo.com/webservice/setup-custom-service-ubuntu/ on February 18, 2018.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

No responses yet

Write a response