Python - отправить сообщение KDE knotify с заданием cron в Linux?
Я пытаюсь отправить уведомление в KDE knotify с задания cron. Приведенный ниже код работает нормально, но когда я запускаю его как задание cron, уведомление не появляется.
#!/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 (модуль автозапуска в конфигурации) создайте запись сценария для запуска после запуска среды. Выведите значение этой переменной среды во временный файл в вашем домашнем каталоге, а затем вы можете установить переменную среды в вашем задании cron или скрипте python из временного файла.
#!/bin/bash
echo $DBUS_SESSION_BUS_ADDRESS > $HOME/tmp/kde_dbus.session