用户Crontab+Python+Random wallpapers=不工作?

2024-06-13 09:30:23 发布

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

我有一个python脚本,它通过gconf将桌面墙纸正确设置为给定文件夹中的随机图片。在

然后在crontab中有以下条目

* * * * * python /home/bolster/bin/change-background.py

syslog正确地报告了执行情况

Apr 26 14:11:01 bolster-desktop CRON[9751]: (bolster) CMD (python /home/bolster/bin/change-background.py)
Apr 26 14:12:01 bolster-desktop CRON[9836]: (bolster) CMD (python /home/bolster/bin/change-background.py)
Apr 26 14:13:01 bolster-desktop CRON[9860]: (bolster) CMD (python /home/bolster/bin/change-background.py)
Apr 26 14:14:01 bolster-desktop CRON[9905]: (bolster) CMD (python /home/bolster/bin/change-background.py)
Apr 26 14:15:01 bolster-desktop CRON[9948]: (bolster) CMD (python /home/bolster/bin/change-background.py)
Apr 26 14:16:01 bolster-desktop CRON[9983]: (bolster) CMD (python /home/bolster/bin/change-background.py)

但没有桌面变化无常,有什么想法吗?在


Tags: py脚本文件夹cmdhomebin图片change
3条回答

为了设置DISPLAY环境变量,我将它直接放在crontab中。另外,我将使脚本可执行,并给它一个适当的头(#!/usr/bin/env python),以便它可以直接执行。另外,当crontab运行时,您可以依赖于PWD被设置为HOME。在

我的crontab应该是这样的:

DISPLAY=:0.0
* * * * * bin/change-background.py

您还可以设置路径(与DISPLAY相同),这样就不需要bin/。在


在crontab中设置环境的主要问题是值是插值的而不是变量。例如,这不能给出预期的结果:

^{pr2}$

您的脚本依赖于DISPLAY环境变量,该变量是在X会话中从shell执行脚本时设置的,但在从cron运行脚本时则不设置。在

根据Bolo的观察,我忘记了在脚本或crontab中构建显示。在

最简单的解决方案是在crontab前面加上env DISPLAY=:0.0

所以:

* * * * * env DISPLAY=:0.0 python /home/bolster/bin/change-background.py

相关问题 更多 >