Running upstart script on 17.04?

Running 17.04 (Zesty Zapus) and trying to start an upstart script but I noticed it's not getting executed. Then I noticed that upstart isn't even listed as an installed package even if there are lots of scripts in /etc/init. Apparently they are not run since introducing a typo in e.g cron doesn't affect its startup.

How should I run the upstart script? Install upstart or run it through some systemd-layer? Does installing upstart break something when the other scripts in /etc/init are suddenly run?


Apparently upstart isn't included in the server version OOTB even though there are scripts in /etc/init (a bit confusing).

I rewrote the upstart script as a systemd unit file using mostly the Ubuntu wiki page on systemd for upstart users as a guide and enabled it in normal fashion.


The above steps worked beautifully, I have made some detailed steps in my answer here:

My env is as follows

  1. Ubuntu at 17.10
  2. I have a python app on Gunicorn 19.x server, I need to start this application as a service.

Firstly you need to write a foo.service file.

[Unit] 
Description=FooServer 

[Service] 
Restart=on-failure
WorkingDirectory=/path/to/your/working/directory/where the foo lives
ExecStart=/what/process/will call foo eg: in my case I used gunicorn app:app
ExecReload=/bin/kill -HUP $MAINPID 
KillSignal=SIGINT 

[Install] 
WantedBy=multi-user.target

The meaning of every word on the left hand side of the '=' sign and their equivalent in (to the earlier) upstart is in link https://wiki.ubuntu.com/SystemdForUpstartUsers

Once the file is ready, let's say you name it as 'foo.service' (the .service extension is important)

You need to place the file in /lib/systemd/system

After which you need to enable the service by calling

systemctl enable foo

Which will prompt you enter your root password as it will be creating symlinks in some root access based folders where all the services party.

If you have reached till here without any hassle , you are good. Your service is hence created. Start it by calling

sudo service foo start

systemctl status foo to see the status sudo service foo stop to stop the service

I was on the Gunicorn page all day today and tried all the various options and none of them worked and finally this one worked. Thank you so much @Zanna and @Nicklas Karlsson