设置 Cron 任务来更改 Gnome 3 背景不会更新背景

设置 Cron 任务来更改 Gnome 3 背景不会更新背景

我制作了这个简单的脚本:

#!/bin/bash

# If started as root, then re-start as user "cyril":
if [ "$(id -u)" -eq 0 ]; then
    exec sudo -H -u cyril $0 "$@"
fi

wget -q -O /tmp/wallpaper.jpg https://source.unsplash.com/1920x1080/?landscape,mountain,forest,stars,space,galaxy;
gsettings set org.gnome.desktop.background picture-uri-dark file:///tmp/wallpaper.jpg;
gsettings set org.gnome.desktop.background picture-uri file:///tmp/wallpaper.jpg;

exit 0;

将其移至 /etc/cron.hourly/1wallpaper 并赋予其 chmod +x。

如果我从 bash 手动运行它,它工作正常。使用 cron.hourly 应该每小时运行一次,每小时给我一个不同的背景,但事实并非如此,几个小时之间没有任何变化。

我错过了什么?

我确保运行的用户gsettings是我,以便不更改root用户的背景。

我想知道,当使用 cron 运行时,是否会运行另一种与我正在做的事情不兼容的 shell 类型。

我正在使用 Fedora 36。

答案1

这个问题可以在 Ask Ubuntu 上找到处理同样的问题
解决方案是提供cron正确的环境变量值DBUS_SESSION_BUS_ADDRESS

相关内容