I've added a new script to /etc/init/ called minecraft.conf which contains the script:

start on startup
stop on shutdown
respawn limit 20 5

  export HOME="/root"
  exec /root/minecraft/start.sh 2>&1 >> /var/log/minecraft.log
end script

post-start script
   echo "minecraft started"

When I try start minecraft I get the error: start: Unknown job: minecraft

I've tried running initctl list and my minecraft job is not listed. I've tried running initctl reload-configuration and it doesn't make any difference.

Other jobs listed by initctl list work fine with start, stop and restart.

Why won't upstart see my new script?

  • upstart.ubuntu.com/getting-started.html
    – Raja G
    Jan 24, 2013 at 16:47
  • This might be a stupid question but... shuldn't be your script in /etc/init.d/?
    – Wolfer
    Jan 24, 2013 at 17:09
  • @snow thanks, but I've already read that and I still have the problem.
    – Jasarien
    Jan 24, 2013 at 17:19
  • @Wolfer according to the upstart getting started guide, it says "Once happy, place the files in /etc/init and now you're ready to reboot and use upstart."
    – Jasarien
    Jan 24, 2013 at 17:20
  • I tried to reproduce the problem but with no success. I copy pasted your code to /etc/init/minecraft.conf and issued sudo start minecraft without a problem. Here is content of the log file ~$ sudo cat /var/log/upstart/minecraft.log minecraft started /proc/self/fd/9: 3: exec: /root/minecraft/start.sh: not found minecraft started Can you provide more details on Ubuntu version you are using and any useful information from syslog? Jan 24, 2013 at 19:10

6 Answers 6


An easy way to check your script syntax is with the following command:

init-checkconf -d /etc/init/service_name.conf

I've found that even with a valid Upstart file if the file didn't exist when the server was booted last I have to reboot the server for Upstart to see the file.


Check the upstart logs (it's in /var/log/syslog) while reloading the configuration using initctl reload-configuration. If there is a syntax error, it will show up there. That's usually why you cannot use your new upstart configuration.


I feel kinda dumb... But here it is:

I missed the "end script" stanza from the very end of the upstart script...

post-start script
   echo "minecraft started"

should have been

post-start script
   echo "minecraft started"
end script

I'm not sure why it worked for @schkovich without the end script, though...

  • 2
    Because I added end script stanza. Built in (mind) auto code completion. :( Jan 27, 2013 at 8:48
  • I hit the same problem but infuriatingly, nothing appears in /var/log and initctl reload-configuration --verbose is silent.
    – Goblinhack
    Dec 2, 2015 at 17:05

In my case it was an empty author field, like this:

author ""

It worked only after adding something in the quotes.

# initctl reload-configuration

was also throwing /etc/init/servicename.conf:2: Expected token to syslog instead of stdout. Too busy to file a bug report for a dying package.


Perhaps not applicable to this specifically, but worth mentioning: If you edit a Upstart config file for a service that is running, running restart does NOT reload the configuration. You have to run stop and start to have new changes take effect.



Alternative command for new Ubuntu versions (works on 18):

systemctl daemon-reload

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .