Ale*_*icz 3 cron wallpaper stretch pcmanfm raspbian
我在桌面上运行一个几乎全新的 Raspbian Stretch 4.9 图像,并有一个程序每隔几分钟为计算机背景创建一个新图像。
我正在尝试创建一个 cron 作业以使用 pcmanfm 正确更新背景,并且按照此处的建议创建了以下名为 update.sh 的脚本来设置背景:
!#/bin/bash
export DISPLAY=:0
export XAUTHORITY=/home/pi/.Xauthority
pcmanfm -w '/home/pi/folder/image.png'
Run Code Online (Sandbox Code Playgroud)
该脚本是可执行的,当它从终端运行时,它会按预期运行。我创建了一个 crontab 来自动运行它:
* * * * * /home/pi/folder/update.sh > /home/pi/folder/log.txt 2>&1
Run Code Online (Sandbox Code Playgroud)
当 cron 作业每分钟触发一次时,会出现一个弹出窗口,并显示“桌面管理器未处于活动状态”的错误消息。使用“确定”按钮关闭它,日志文件显示:
** Message: x-terminal-emulator has very limited support, consider choose another terminal
Run Code Online (Sandbox Code Playgroud)
我已经在 crontab 中直接尝试了该命令
* * * * * DISPLAY=:0 && pcmanfm -w '/home/pi/folder/image.png' > /home/pi/folder/log.txt 2>&1
Run Code Online (Sandbox Code Playgroud)
而这次的错误是不同的
Cannot open display:
Run Code Online (Sandbox Code Playgroud)
我不完全确定这有什么意义,尽管环顾四周似乎 cron 工作可能很挑剔。我不确定这是路径问题还是环境问题,因为我不了解这些事情的很多细节,但我认为这应该不是问题,因为我使用的是图像和脚本的完整路径。这不应该是权限错误,因为我在用户 crontab 和系统 crontab 上都尝试过这个,但都失败了。(此外,默认的 pi 用户在默认情况下具有 root 权限。)我不知道还有什么要搜索或尝试的,所以如果有人能指出我正确的方向或以前遇到过这个问题,我会寻求帮助。
小智 5
我遇到了完全相同的问题,除了我运行的是 Lubuntu 17.04。它最近出现在最近的更新之后,但无法确定何时。经过大量研究,我开始怀疑 XDG 环境变量之一也必须导出。经过一些试验和错误,我发现导出 XDG_RUNTIME_DIR 为我解决了这个问题。您可能想尝试一下。
要找出运行的值: echo $XDG_RUNTIME_DIR
从 cron 运行的工作壁纸更换器现在看起来像:
#!/bin/bash
...
export DISPLAY=:0
export XAUTHORITY=/home/krisz/.Xauthority
export XDG_RUNTIME_DIR=/run/user/1000
pcmanfm --set-wallpaper=${dir}/${file} --wallpaper-mode=crop
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1524 次 |
| 最近记录: |