2013-03-02 3 views
0

Я пытаюсь отправить уведомление KDE в knotify из задания cron. Код ниже работает нормально, но когда я запускаю его как задание cron, уведомление не появляется.Python - отправить сообщение KDE knotify с заданием cron на linux?

#!/usr/bin/python2 
import dbus 
import gobject 

album = "album" 
artist = "artist" 
title = "title" 
knotify = dbus.SessionBus().get_object("org.kde.knotify", "/Notify") 
knotify.event("warning", "kde", [], title, u"by %s from %s" % (artist, album), [], [], 0, 0, dbus_interface="org.kde.KNotify") 

Кто-нибудь знает, как я могу запустить это как работу cron?

ответ

1

Вам необходимо указать переменную окружения, которая называется DBUS_SESSION_BUS_ADDRESS.

Вы можете получить значение из текущей сессии kde.

$ echo $DBUS_SESSION_BUS_ADDRESS 
unix:abstract=/tmp/dbus-iHb7INjMEc,guid=d46013545434477a1b7a6b27512d573c 

В вашем запуске Kde (автозапуск модуля в конфигурации), создать запись сценария для запуска после того, как среда запускается. Выведите это значение переменной среды в файл temp в вашем домашнем каталоге, а затем вы можете установить переменную среды в вашем задании cron или скрипте python из временного файла.

#!/bin/bash 
echo $DBUS_SESSION_BUS_ADDRESS > $HOME/tmp/kde_dbus.session 
Смежные вопросы