繁体   English   中英

Zenity无法在Crontab的python脚本中工作

[英]Zenity not working in python script with crontab

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

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

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

cron运行交互命令没有明智的方法。 不能保证有一个用户,不能保证只有一个用户,也不能保证正在使用或什至能够与您的软件进行交互的用户; 他们中的一些人可能是伪用户,或者是在昂贵的计量Internet访问上处于远程状态,或者只是空闲状态或其他原因。

通常的解决方案是服务器/客户端体系结构,其中从cron运行的任何内容都可以通过某些IPC机制提供其结果,并且希望结果的用户可以在X11会话(或Shell,或拥有的东西)中运行客户端。

创建一个脚本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")

那就是如果您想使用您提到的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM