Upstart에서 사용자 작업을 활성화하는 방법

Upstart에서 사용자 작업을 활성화하는 방법

권한이 없는 사용자가 자신의 디렉터리에서 시작 작업을 실행할 수 있도록 허용하려고 합니다 $HOME/.init.

신생 요리책에서는 다음과 같이 언급합니다.이것을 활성화, 그러나 이를 수행하는 방법은 언급하지 않습니다. 좌절감은 다음과 같이 요약될 수 있습니다.@ropez의 코멘트:

문서에는 언급되지 않은 것 같습니다어떻게사용자 작업을 활성화하려면 구성 파일만 언급하고 관리자가 이를 수행해야 합니다.

start권한이 없는 사용자로 작업 하려고 하면 계속 이 오류가 발생합니다 .

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

지금까지 내가 찾은 가장 가까운 것은누군가가 패치한 Upstart.conf, 하지만 제가 사용하고 있는 Ubuntu 12.04에서 볼 수 있는 것보다 훨씬 짧은 것 같습니다.

이를 수행하는 표준적이고 잘 정의된 방법이 있습니까?

추신: 나도 알고 있어요관련된 질문. 그러나 그들의 답변 중 어느 것도 실제로 수행 방법을 보여주지 않습니다.

답변1

연결하는 "패치된" Upstart 구성은 함께 제공된 Upstart 구성과 동일합니다.업스타트 1.3(에서사용자 작업을 실행하기 위해 시작할 수 없습니다) 따라서 이것이 사용자 작업을 활성화하는 가장 간단한 방법이라고 말하고 싶습니다.

답변2

이 솔루션은 Ubuntu 12.04의 Upstart 1.5에서 작동합니다.

시작 구성을 엽니다.

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>

관련 정보