пользовательская выскочка в ~ / .init / не найдена

Запуск 12.04, у меня есть следующее задание upstart в ~/.init/:

# myjob

start on net-device-up
stop on [!12345]

script

echo ">> hello from user script" >> ~/tmp/upstart.log

end script

После перезагрузки моей машины

service myjob start
# => myjob: unrecognised service

initctl действительно перечисляет работу, но выполняет без sudo выдает ошибку:

initctl start myjob
# => initctl: Rejected send message, 1 matched rules; type="method_call", sender=":1.100" (uid=1000 pid=13349 comm="initctl start thunderbird ") interface="com.ubuntu.Upstart0_6.Job" member="Start" error name="(unset)" requested_reply="0" destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init")

Я ожидаю, что смогу начать работу, используя service или initctl, не используя sudo. Что я неправильно понял?

Спасибо

7
задан 19 June 2012 в 18:03

1 ответ

Несколько точек:

  1. Пользовательские задания не включены по умолчанию в Ubuntu. См.:

  2. Вы никогда не должны перезагружать после создания никакого типа Новомодного задания — они автоматически обнаруживаются Выскочкой (использующий inotify).

  3. service команда не является частью Выскочки — это - инструмент SystemV для управления заданиями SysV. Однако Выскочка обеспечивает совместимость SystemV, таким образом, что через Новомодные системные задания можно также управлять service (для удобства). Выскочка эквивалентные команды start, stop и, restart.

  4. Для пользовательских заданий необходимо использовать start, stop и, restart (или initctl эквиваленты).

Наконец, обратите внимание, что пользовательские задания в настоящее время являются очень простыми. Мы планируем улучшить их значительно для 12,10, но на данный момент знать что:

  • Выскочка выполнит все пользовательское использование заданий /bin/sh -e независимо от которой оболочки Вы используете по умолчанию. Это -e также очень важно (man sh для деталей).
  • Выскочка только установит минимальный набор переменных в пользовательской среде задания. Следовательно, необходимо, вероятно, установить переменные как HOME как это:

    env HOME=/home/james

См.:

12
ответ дан 19 June 2012 в 18:03

Другие вопросы по тегам:

Похожие вопросы: