Процесс Python/Linux/Daemon пытается показать gtk.messagedialog

в Ubuntu 8/9 я пытаюсь написать демона на python, который отслеживает определенное состояние сети и информирует пользователя с помощью gtk.messagedialog. Я установил этот скрипт с помощью rc-update. Демон запускается при загрузке, но не показывает диалоговое окно даже после входа в систему. Я предполагаю, что init.d запускает мой демон на tty1, а гном недоступен. Попытался запустить диалог через подпроцесс, но, похоже, он наследует ту же среду запуска. Какая лучшая практика для такого рода вещей.


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