Нуждаюсь в помощи запуская приложение Python как сервис в Ubuntu с Выскочкой

Я записал регистрирующееся приложение в Python, который предназначен для запуска при начальной загрузке, но я не мог запустить приложение с Выскочки Ubuntu init демон. Когда выполнено от терминала с sudo/usr/local/greeenlog/main.pyw, приложение работает отлично. Вот то, что я попробовал за Новомодное задание:

/etc/init/greeenlog.conf

# greeenlog

description     "I log stuff."

start on startup
stop on shutdown

script
    exec /usr/local/greeenlog/main.pyw
end script

Мое приложение запускает один дочерний поток, в случае, если это важно. Я попробовал задание ожидать строкой файла конфигурации ветвления без любого изменения в результатах. Я также попробовал это sudo и без положений сценария (просто одинокий исполнительный оператор). Во всех случаях, после начальной загрузки, рабочее состояние greeenlog возвращает остановку/ожидание greeenlog и рабочий запуск greeenlog возвраты:

start: Rejected send message, 1 matched rules; type="method_call", sender=":1.61" (uid=1000 pid=2496 comm="start) 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"))

Кто-либо может видеть то, что я делаю неправильно? Я ценю любую справку, которую можно дать.Спасибо.

13
задан GreeenGuru 14 April 2010 в 21:21
поделиться

1 ответ

Благодаря помощи unutbu я смог исправить свою работу. По-видимому, это единственные переменные среды, которые устанавливает Upstart (извлеченные в Python с помощью os.environ ):

{'TERM': 'linux', 'PWD': '/', 'UPSTART_INSTANCE': '', 'UPSTART_JOB': 'greeenlog', 'PATH': '/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin'}

Моя программа полагается на установку пары этих переменных, так что вот пересмотренная работа с правильные переменные среды:

# greeenlog

description     "I log stuff."

start on startup
stop on shutdown

env DISPLAY=:0.0
env GTK_RC_FILES=/etc/gtk/gtkrc:/home/greeenguru/.gtkrc-1.2-gnome2

script
    exec /usr/local/greeenlog/main.pyw > /tmp/greeenlog.out 2>&1
end script

Спасибо!

12
ответ дан 2 December 2019 в 00:58
поделиться
Другие вопросы по тегам:

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