Как включить пользовательские задания в Upstart

Как включить пользовательские задания в Upstart

Я пытаюсь разрешить непривилегированным пользователям запускать задания upstart из своего $HOME/.initкаталога.

В кулинарной книге Upstart упоминается, что вы должнывключить это, но не упоминает, как это сделать. Разочарование можно суммировать следующим образом:@комментарий ropez:

в документации, похоже, не упоминаетсякакдля включения пользовательских заданий упоминается только файл конфигурации, и это должен сделать администратор

Я все еще получаю эту ошибку, когда пытаюсь выполнить startзадание как непривилегированный пользователь:

start: Rejected send message, 1 matched rules; type="method_call", sender=":1.70"

Самое близкое, что я нашел до сих пор, это сутькто-то пропатчил Upstart.conf, но он кажется намного короче того, который я вижу в Ubuntu 12.04, которую я использую.

Существует ли канонический, четко определенный способ сделать это?

P.S. Я в курсесвязанный вопросы. Однако ни один из их ответов на самом деле не показывает, как это сделать.

решение1

«Исправленная» конфигурация Upstart, на которую вы ссылаетесь, такая же, как и конфигурация Upstart, которая была поставлена ​​вместе сАпстарт 1.3(отне могу заставить upstart запустить пользовательское задание), поэтому я бы сказал, что это самый простой способ включить пользовательские задания.

решение2

Это решение работает для Upstart 1.5 на Ubuntu 12.04.

Откройте конфигурацию upstart:

sudo vim /etc/dbus-1/system.d/Upstart.conf

Закомментируйте defaultполитику, т.е.

<policy context="default">
    ...
</policy>

и вставьте блок изэтот патч:

<!--
Allow any user to invoke all of the methods on Upstart, its jobs
or their instances, and to get and set properties - since Upstart
isolates commands by user.
 -->
<policy context="default">
    <allow send_destination="com.ubuntu.Upstart"
        send_interface="org.freedesktop.DBus.Introspectable" />
    <allow send_destination="com.ubuntu.Upstart"
        send_interface="org.freedesktop.DBus.Properties" />
    <allow send_destination="com.ubuntu.Upstart"
        send_interface="com.ubuntu.Upstart0_6" />
    <allow send_destination="com.ubuntu.Upstart"
        send_interface="com.ubuntu.Upstart0_6.Job" />
    <allow send_destination="com.ubuntu.Upstart"
        send_interface="com.ubuntu.Upstart0_6.Instance" />
</policy>

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