我编写了一个脚本来更改Mate 17.04中的背景文件:
首先,我曾经发出过这个命令:
gsettings set org.gnome.desktop.background picture-uri file:///home/me/temp/background.jpg
然后我运行了这个脚本:
#/bin/bash
find -L ~/Pictures -name '*.jpg'>~/jpegs.text
while true ; do
convert `shuf -n 1 jpegs.text` -resize 1920x1080 ~/temp/background.jpg
sleep 60
done
运行良好,直到??? 20 分钟后,系统死机。反复出现。如果我减少睡眠时间,速度会相应加快。
因此,我认为当系统想要对后台文件执行某些操作时,写入后台文件可能会出现问题。所以我想到了以下方法:
#/bin/bash
find -L ~/Pictures -name '*.jpg'>~/jpegs.text
while true ; do
convert `shuf -n 1 jpegs.text` -resize 1920x1080 ~/temp/backgroundtemp.jpg
gsettings set org.gnome.desktop.background picture-uri file:///home/john/temp/backgroundtemp.jpg
cp ~/temp/backgroundtemp.jpg ~/temp/background.jpg
gsettings set org.gnome.desktop.background picture-uri file:///home/john/temp/background.jpg
sleep 60
done
此版本将新图片放入“临时”文件中,然后告诉 gsettings 使用该文件。然后将其复制到“真实”文件,并将 gsettings 重新指向“真实”文件,这样下次它就不会写入 gsettings 正在使用的文件中。工作了几个小时!太棒了!然后系统又死机了。
注意,如果脚本没有运行,系统不会冻结。
我做错了什么吗?如果是,那是什么?我相信这不是脚本的问题。可能是重复的 gsettings 命令的交互。
编辑:忘了提了。冻结包括除鼠标之外的所有内容。
答案1
升级到 17.10 解决了这个问题。运行脚本时不再冻结。