Running Upstart user jobs on startup

Posted by dgel on Server Fault See other posts from Server Fault or by dgel
Published on 2011-11-23T20:27:24Z Indexed on 2011/11/24 1:56 UTC
Read the original article Hit count: 444

Filed under:
|

I am running Ubuntu server 11.04. I have created an Upstart user job as described here.

I have the following file at my /home/myuser/.init/sensors.conf:

start on started mysql
stop on stopping mysql


chdir /home/myuser/mydir/project
exec /home/myuser/mydir/env/bin/python /home/myuser/mydir/project/manage.py sensors

respawn

respawn limit 10 90

As myuser I can start, stop, and reload the job fine- it works perfectly:

$ start sensors
sensors start/running, process 1332
$ stop sensors
sensors stop/waiting

The problem is that the job is not starting automatically at boot when mysql starts. After a fresh boot, mysql is running but my sensors job is not.

What's strange, is that although the job doesn't begin on bootup, if I use sudo to restart mysql it does indeed start my job. The following commands are run as myuser from a fresh startup:

$ status sensors
sensors stop/waiting
$ sudo restart mysql
mysql start/running, process 1209
$ status sensors
sensors start/running, process 1229

The documentation for Upstart user jobs is pretty limited. What is the correct technique to have a user job start automatically on startup of the system?

I know I can just throw something in rc.local to start it, or I could move my sensors.conf to /etc/init but I'm curious if there is a way to do it using just Upstart.

© Server Fault or respective owner

Related posts about ubuntu

Related posts about upstart