Я работаю на сервере Ubuntu 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.
Глядя на источники , как
/etc/init/mysql.conf
и http://upstart.ubuntu.com/cookbook/#start-on мне кажется , вы должны изменить своюstart on
линию на что - то вроде этого:Я не уверен, что согласен с тем, что у выскочки нет документации, но я уверен, что иногда мне тяжело разбираться в документации. Я обычно просто делаю проб и ошибок, пока не заработаю. Решение, приведенное выше, может быть излишним ... что-то настолько простое, насколько этого может быть достаточно:
источник
start on
строкой, но это просто тот факт, что upstart загружает только / etc / init при запуске, но не пользовательские файлы инициализации в их$HOME/.init
/etc/init
. Вы правы, что для этого, похоже, не хватает документации, и я не уверен, как обеспечить~/.init
запуск сценариев.$HOME/.init
задания не включены по умолчанию, и/etc/dbus-1/system.d/Upstart.conf
могут потребоваться некоторые изменения . upstart.ubuntu.com/cookbook/#run-a-job-as-a-different-user