How to create a service on Ubuntu Upstart
Solution 1:
Make sure you're on 14.04. Ubuntu 16.04 (and above) uses systemd, not Upstart.
A Upstart script is a script file placed at /etc/init/
and ending in .conf
.
It requires 2 sections: one to indicate when to start, and another with the command to execute.
The easiest script to start with your sample is:
# myprogram.conf
start on filesystem
exec /usr/bin/java -jar /path_to/program
Created as root under /etc/init/myprogram.conf
.
If your script requires more than one command line, use the script
section instead of the exec
line:
# myprogram.conf
start on filesystem
script
/usr/bin/java -jar /path_to/program
echo "Another command"
end script
To enable bash completion for your service, add a symlink into /etc/init.d
folder:
sudo ln -s /etc/init/myprogram.conf /etc/init.d/myprogram
Then try start and stop it:
sudo service myprogram start
According the upstart cookbook, you can create pre-start
/post-start
and pre-stop
/post-stop
commands to be executed.
Additionally, I read you want to check if a process is running. Check this question and maybe use the pre-start
section.