I am using upstart for services on my servers. Writing a conf file and placing it in /etc/init
is easy enough, but that doesn't seem to completely install. For one, the service --status-all
doesn't list my new service. I checked and if I make a link in /etc/init.d
to /lib/init/ubstart-job
it'll show up in the status. But doing this manually makes me think I'm not doing it right, and there may well be other configuration steps which aren't being done.
What is the correct way to install an upstart service such that it is properly registered in all tools dealing with services?
When you initially copy a new conf file into the /etc/init folder you need to call:
By this your upstart should be properly registered.
Checkout the service manual:
(emphasis added)
That's why adding it to /etc/init.d (where the sysvinit jobs are located) made that work. So: try running initctl list instead :) .
For SysV Services
Make sure that you follow the following steps while adding/creating new service in Ubuntu.
/etc/init.d/<service name>
chmod 700 /etc/init.d/<service name>
update-rc.d <service name> defaults
update-rc.d <service name> enable
Now see you service in
I've found that an error in the .conf file can make the job not recognizable to initctl. for example, having a
setuid
line in Upstart version 1.3 or earlier.While the current chosen answer is correct for getting the new service added to upstart, it's not particularly helpful for finding out WHY a config in /etc/init/ is failing to load -- the missing piece is using init-checkconf first to make sure your config is valid, and then using reload-configuration: