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

7

Запуск 12.04, у меня есть следующая выскочка в ~/.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 . Что я неправильно понял?

Спасибо

    
задан Dave Nolan 19.06.2012 в 14:03
источник

1 ответ

12

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

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

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

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

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

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

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

    env HOME=/home/james

См:

ответ дан jamesodhunt 19.06.2012 в 16:20
источник

Ознакомьтесь с другими вопросами по меткам