Non*_*biz 4 python cron pynotify
我编写了一个使用pynotify发出警报的脚本.当我运行它时,它工作得很好(python script.py),但是当从cron运行时00 * * * * myname python ~/scripts/script.py,它不起作用!我不知道为什么.这是片段:
if os.path.isfile(os.path.expanduser('~/.thumbnails/normal')+'/'+thumbnail):
n = pynotify.Notification(video_file[0], 'finished download', os.path.expanduser('~/.thumbnails')+'/'+thumbnail)
else:
n = pynotify.Notification(video_file[0], 'finished download', '/usr/share/icons/gnome/48x48/mimetypes/gnome-mime-application-x-shockwave-flash.png')
print n
n.show()
Run Code Online (Sandbox Code Playgroud)
将输出定向到〜/ log.file给出:<pynotify.Notification object at 0x16d4e60 (NotifyNotification at 0x13804e0)>并且没有错误,所以我不确定在哪里看.
我不是那么深入cron工作,但我对pynotify有点了解.它使用libnotify和一些DBUS的东西,所以它在某个地方调用DBUS和iirc它也传递了显示通知的显示ID.
现在,默认情况下,cron不能与GUI应用程序一起使用,您必须指定一个显示器供他们使用:
00 * * * * myname env DISPLAY=:0 python ~/scripts/script.py
Run Code Online (Sandbox Code Playgroud)
这将使cron使用当前显示(桌面).
如果您在Ubuntu上运行此页面可能对您感兴趣:https:
//help.ubuntu.com/community/CronHowto