Pcmanfm设置壁纸在cron中的Raspbian拉伸上失败

Pcmanfm设置壁纸在cron中的Raspbian拉伸上失败,cron,raspbian,wallpaper,stretch,pcmanfm,Cron,Raspbian,Wallpaper,Stretch,Pcmanfm,我正在运行一个带有桌面的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' 脚本是可执行的,当

我正在运行一个带有桌面的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'
脚本是可执行的,当它从终端运行时,它会按预期运行。我已经创建了一个crontab,以便自动运行此命令:

* * * * * /home/pi/folder/update.sh > /home/pi/folder/log.txt 2>&1
当cron作业每分钟触发一次时,会出现一个弹出窗口,其中显示一条错误消息“Desktop manager未处于活动状态”。单击“确定”按钮将其关闭,日志文件显示:

** Message: x-terminal-emulator has very limited support, consider choose another terminal
我已经在crontab中直接尝试了该命令

* * * * * DISPLAY=:0 && pcmanfm -w '/home/pi/folder/image.png' > /home/pi/folder/log.txt 2>&1
这次的错误不同了

Cannot open display:

我不完全确定这有什么意义,尽管环顾四周,克朗·乔布斯似乎是个芬尼基。我不确定这是否是一个路径或环境问题,因为我不知道关于这些事情的很多细节,但我认为这不应该是一个问题,因为我正在使用图像和脚本的完整路径。这不应该是权限错误,因为我在用户crontab和系统crontab上都尝试过,但都失败了。(此外,默认pi用户在默认情况下具有root权限。)我不确定还要搜索或尝试什么,因此如果有人能为我指出正确的方向或以前遇到过此问题,我请求帮助

除了运行Lubuntu 17.04之外,我遇到了完全相同的问题。它是在最近的更新之后出现的,但无法确定何时出现。经过大量的研究,我开始怀疑XDG环境变量之一也必须导出。经过一些尝试和错误,我发现导出XDG_RUNTIME_DIR为我解决了这个问题。你可以试试看

要计算值,请运行:
echo$XDG\u RUNTIME\u 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
...

昨晚在我的笔记本电脑上运行更新(包括更新pcmanfm)后,我做同样事情的脚本停止工作。我猜cron启动的脚本与以图形方式登录的用户不在同一“用户空间”中运行,因此存在一些环境变量设置不正确的问题。不幸的是,我不是一个linux专家用户,但如果我找到了解决方案,我会继续挖掘并发回。TLDR:我认为最近的更新破坏了它。