我有一个python脚本,我在其中使用Zenity来显示一些通知。代码段如下:
if message_list:
pretty_print(message_list)
os.system("/usr/bin/zenity --notification --text='You have unread messages'")
当我正常运行此脚本时,一切正常,即出现对话框并显示消息。但是当我在crontab中安排这个脚本时,什么都没有出现。任何解决方案?
答案 0 :(得分:0)
没有合理的方法来运行cron
的交互式命令。无法保证有用户,无法保证只有一个用户,无法保证所在用户想要甚至能够与您的软件进行交互;其中一些可能是伪用户或远程昂贵的计量互联网访问或只是闲置或其他。
通常的解决方案是服务器/客户端体系结构,其中来自cron
的任何运行通过某种IPC机制使其结果可用,并且希望结果的用户从其X11会话(或shell,或者shell)中运行客户端有你)。
答案 1 :(得分:0)
创建脚本info.sh
(记得授予它执行权限):
#!/bin/bash
xhost +
/usr/bin/zenity --notification --text='You have unread messages'
在你的剧本中:
if message_list:
pretty_print(message_list)
os.system("./info.sh")
如果您想使用您提到的解决方案,那就是。