Процес на Python / Linux/ Daemon се опитва да покаже gtk.messagedialog

на Ubuntu 8/9 се опитвам да напиша демон в python, който следи определено състояние на мрежата и информира потребителя с помощта на gtk.messagedialog. Инсталирах този скрипт с помощта на rc-update. Демонът стартира при зареждане, но не показва диалоговия прозорец дори след като вляза. Предполагам, защото init.d стартира моя демон на tty1 и няма наличен gnome. Опитах да стартирам диалоговия прозорец чрез подпроцес, но изглежда, че наследява същата среда за изпълнение. Коя е най-добрата практика за подобни неща.


person helpisrequired    schedule 23.01.2010    source източник


Отговори (3)


Ако петима потребители са влезли в X сесии, кой получава съобщението? Всеки?

Ако някой е влязъл локално, но използва само tty, а не X11, трябва ли да види съобщението?

Ако някой е влязъл дистанционно чрез ssh -X, за да стартира графично приложение на собствената си система извън вашия процесор, трябва ли да види съобщението? Как бихте им го донесли?

Linux е твърде гъвкав за настоящия ви подход. Стандартният начин да направите това е всеки потребител, който се интересува от вида на съобщението, което изпращате, да стартира приложение, което получава съобщението и го показва по начин, който той избере. Dbus е популярен начин за настройка на процеса на съобщения. По този начин отдалечените потребители или потребителите, влезли само с TTY режим, все още имат опция за виждане на съобщението.

person Justin Smith    schedule 23.01.2010

За да разберете дали вашият код изобщо работи, трябва първо да опитате да изпълните демона като нормална програма в графична обвивка (на работния плот на GNOME).

Можете също да извикате zenity.

person AndiDog    schedule 23.01.2010

Можете да използвате notify-send (от пакет libnotify-bin), за да изпращате известия до потребители на настолни компютри от вашия демон.

person Diego Torres Milano    schedule 25.01.2010