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
Другие вопросы по тегам