Upstart job to systemd for ubuntu 16.04

Posted July 9, 2017 4.8k views
Linux CommandsUbuntu 16.04

This is as simple upstart job which we wrote for starting our application but I am unable to find any good solution to make it for systemD.. If I may create a simple Start and Post Exec command base file, It just gave me errors and nothing work..

I have only hurdles with those basic values as from start to setgid root? how can we write it in SystemD service?

description  "evercam_media"
start on filesystem or runlevel [2345]
stop on runlevel [!2345]
limit nofile 1000000 1000000

chdir /
setuid root
setgid root

env HOME=/home/root
env LANG=en_US.UTF-8
env LANGUAGE=en_US:en
env LS_ALL=en_US.UTF-8
env ERL_MAX_PORTS=10240

exec watch -n1 '/usr/local/bin/'

post-stop exec sudo pkill beam

Any help will be wonderful, i have been struggling so long on this

1 comment

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Submit an Answer
1 answer

This should be a good starting point:

Description=evercam media



Environment=HOME=/home/root LANG=en_US.UTF-8 LANGUAGE=en_US:en LS_ALL=en_US.UTF-8 ERL_MAX_PORTS=10240

ExecStart=/usr/bin/watch -n1 '/usr/local/bin/'
ExecStopPost=/bin/pkill beam



The main difference is that systemd requires absolute paths. I noticed that the service is running as root. I would recommend looking into having it run as a regular user unless absolutely necessary :)