我有一个通过crontab运行的python程序,并且完美地工作。但是,我决定增加通知我它正在做什么的能力,并突然失败。它从命令行运行,但是,运行它作为crontab程序导致它失败从crontab运行python脚本
libnotify-Message: Unable to get session bus: /bin/dbus-launch terminated abnormally with the following error: Autolaunch error: X11 initialization failed.
我在做什么错?
编辑 我想这个程序仍然可以从cron运行,并能够利用通知用户它的工作。有没有办法做到这一点?
编辑2 我用root的crontab和sudo -u esr python script.py
试过没这也失败了,默默地在那。
编辑3 这是可能的!这是代码。
* * * * * su $user -c "DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$(ps -au esr | grep -i "gnome-session" | awk '{ print $1 }')/environ | sed -e 's/DBUS_SESSION_BUS_ADDRESS=//') $(whereis notify-send | awk '{ print $2 }') -u normal -t 20000 \"Hello\" "
你可以使用'的sendmail '通知用户程序的结果。 – 2010-07-21 18:02:48
sendmail可以工作,但它与使用日志来存储结果一样有效,这不幸并不是我正在寻找的。 – EricR 2010-07-21 18:03:40