Как запустить Python приложение GUI от crontab или rc.local?

Это должно быть выполнено как корень для работы правильно. Я попробовал:

DISPLAY=:0 /usr/bin/gtk-launch myapp
DISPLAY=:0 /usr/bin/python /my/application/gui.py

Вторая строка в основном, что в myapp.desktop. Обе строки работают в терминале (ctr+alt+t) и эмулированная консоль (ctrl+alt+F1) и не работают в rc.local и crontab. Действительно ли последний возможен? В противном случае затем, почему?

ОБНОВЛЕНИЕ: Я полагаю, что помещение сценария, являющегося аналогом crontab в/etc/xdg/autostart/mycrontab.desktop, было бы обходным решением. Однако мне любопытно на предмет того, как сделать это с crontab и rc.local.

0
задан 8 February 2020 в 22:31

1 ответ

Решение вдохновлено путем Запуска Rhythmbox через crontab. Это

XAUTHORITY=/home/name/.Xauthority DISPLAY=:0 /usr/bin/gtk-launch myapp

или это

XAUTHORITY=/home/name/.Xauthority DISPLAY=:0 gtk-launch myapp

работы. Затем Вам также нужен файл /usr/share/applications/myapp.desktop с командой внутри:

sudo -b /usr/bin/python /my/application/gui.py

Я использую sudo -b скрыть открывающееся окно терминала.

Причина состояла в том, что "корень в терминале" и "корень в rc.local и crontab" имеют различные переменные среды. Это интересно, если я также установил, скажем, DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-wpHtRgNiWP, взятый от пользователя, затем это не работает.

0
ответ дан 20 February 2020 в 22:58

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

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