2013-03-02 54 views
0

我試圖從cron作業發送通知給KDE的knotify。下面的代碼工作正常,但是當我將它作爲cron作業運行時,通知不會顯示。Python - 用linux上的cron作業發送KDE knotify消息?

#!/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