从根作业向用户发送显示

时间:2017-08-23 06:22:48

标签: python linux root

我有一个以root权限在crontab中启动的作业。此作业应在一段时间后显示弹出消息。这个工作是在python中使用MessageBox工具包。

使用roit,工作正常,5分钟后,我看到了消息框。 问题是,如果我以用户身份登录,我可以看到作业在任务列表中运行,但弹出窗口不起作用(可能因为作业的显示是root用户而不是用户)。

我无法找到更改此作业的方法来使用当前ligin用户的显示。

有没有办法改变这个,以便用户看到弹出窗口?

感谢。

1 个答案:

答案 0 :(得分:2)

MessageBox不会弹出,因为cron作业在未设置DISPLAY(环境变量)的环境中运行。而不是让cron直接运行你的python,你可以让它运行一个简单的包装器:

#!/usr/bin/env bash
export DISPLAY=':0'
python /path/to/your/python/program.sh

或者,如果您确信它不会破坏其他cron作业,则可以添加DISPLAY=:0作为crontab的第一行。

相关问题