Запуск пользовательских заданий Upstart при запуске

Запуск пользовательских заданий Upstart при запуске

Я использую Ubuntu Server 11.04. Я создал задание пользователя Upstart, как описаноздесь.

У меня есть следующий файл /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

Поскольку myuserя могу нормально запускать, останавливать и перезагружать задание, оно работает идеально:

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

Проблема в том, что задание не запускается автоматически при загрузке при mysqlзапуске. После новой загрузки mysqlзапускается, а мое sensorsзадание нет.

Странно, что хотя работа не начинается при загрузке, если я использую sudoдля перезапуска, mysqlона действительно начинает мою работу. Следующие команды запускаются как myuserпри новом запуске:

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

Документация по заданиям пользователя Upstart довольно ограничена. Какова правильная техника автоматического запуска задания пользователя при запуске системы?

Я знаю, что могу просто добавить что-то, rc.localчтобы запустить его, или могу переместить свой, sensors.confно /etc/initмне интересно, есть ли способ сделать это, используя только Upstart.

решение1

Проблема в том, что пользовательские задания не загружаются в Upstart до тех пор, пока пользователь не создаст сеанс Upstart, выполнив одну из initctlкоманд.

Я описал это более подробно наhttp://bradleyayers.blogspot.com.au/2012/04/enabling-upstart-user-jobs-to-start-at.htmlа также написал задание Upstart, которое решает эту проблему.

решение2

Рассматривая такие источники, как /etc/init/mysql.confиhttp://upstart.ubuntu.com/cookbook/#start-onМне кажется, вам следует изменить свою start onстроку примерно так:

start on (mysql and runlevel [2345])

Я не уверен, что согласен с тем, что upstart не хватает документации, но мне действительно иногда трудно разобраться в документации. Обычно я просто пробую и ошибаюсь, пока не получится. Решение выше может быть излишним на самом деле... что-то такое простое, как это, может быть достаточным:

start on mysql

Связанный контент