![当使用“gsettings set org.gnome.desktop.background picture-uri file_path”从 root 不起作用时](https://linux22.com/image/1203668/%E5%BD%93%E4%BD%BF%E7%94%A8%E2%80%9Cgsettings%20set%20org.gnome.desktop.background%20picture-uri%20file_path%E2%80%9D%E4%BB%8E%20root%20%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%E6%97%B6.png)
当我gsettings set org.gnome.desktop.background picture-uri file_path
从 root 用户使用时不起作用,但从 Anotheruser 运行时它可以工作。
即使我把它放在 crontab -u Anotheruser -e 中,也不起作用
我的操作系统:ubuntu 16.04 LTS
我尽了一切努力,但没有成功。
例子 :
su - USER -c "command"
# or ways sudo and su
crontab -u USER -e
DISPLAY=:1 ...
DISPLAY=:0 ...
DISPLAY=:0.0 ...
dbus-launch ...
PID=$(pgrep gnome-session)
export DBUS_SESSION_BUS_ADDRESS= ...
请帮帮我!谢谢
答案1
我找到了解决方案:
export DBUS_SESSION_BUS_ADDRESS=$(pgrep -a dbus-daemon -U USERNAME | grep -o 'unix:abstract.*$')
gsettings set org.gnome.desktop.background picture-uri FILE_ADDRESS
并进入 crontab :
@reboot su USERNAME -c 'export DBUS_SESSION_BUS_ADDRESS=$(pgrep -a dbus-daemon -U USERNAME | grep -o "unix:abstract.*$");export DISPLAY=:0;gsettings set org.gnome.desktop.background picture-uri FILE_ADDRESS'
只需替换USERNAME
为您的用户并替换FILE_ADDRESS
为您的图片地址