Zenity不能在python脚本中使用crontab

2024-05-20 10:10:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python脚本,其中我使用Zenity显示一些通知。代码片段如下:

if message_list:
    pretty_print(message_list)
    os.system("/usr/bin/zenity --notification --text='You have unread messages'")

当我正常运行此脚本时,一切正常,即出现对话框并显示消息。但是当我在crontab中调度这个脚本时,什么也没有出现。有什么解决办法吗?在


Tags: 代码text脚本messageifbinosusr
2条回答

cron运行交互式命令没有合理的方法。不能保证有一个用户,不能保证只有一个用户,也不能保证正在使用的用户想要,或者甚至能够与您的软件交互;其中一些用户可能是伪用户,或者远程访问昂贵的按流量计费的互联网,或者只是空闲或其他什么。在

通常的解决方案是服务器/客户机体系结构,在这种体系结构中,cron中运行的任何内容都可以通过某种IPC机制获得结果,而希望得到结果的用户可以从他们的X11会话(或shell,或您所拥有的)内运行客户机。在

创建一个脚本info.sh(记住授予它执行权限):

#!/bin/bash
xhost +
/usr/bin/zenity  notification  text='You have unread messages'

在你的剧本里:

^{pr2}$

如果你想使用你提到的解决方案。在

相关问题 更多 >