我有一个以root权限在crontab中启动的作业。此作业应在一段时间后显示弹出消息。这个工作是在python中使用MessageBox工具包。
使用roit,工作正常,5分钟后,我看到了消息框。 问题是,如果我以用户身份登录,我可以看到作业在任务列表中运行,但弹出窗口不起作用(可能因为作业的显示是root用户而不是用户)。
我无法找到更改此作业的方法来使用当前ligin用户的显示。
有没有办法改变这个,以便用户看到弹出窗口?
感谢。
答案 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的第一行。