每5分钟运行一次.sh
我有一个.sh脚本,从日本卫星的服务器下载照片并将其设置为背景图片。 我把它放入启动列表中,但是我如何自动运行它,比如5分钟?
懒惰的选择
如果您想要简单的方法,并避免必须找出要设置的环境变量:
- 确保您的脚本包含shebang
- 让它可执行
-
将以下内容添加到启动应用程序:
/bin/bash -c "sleep 15 && while true; do
; sleep 300; done" Dash>启动应用程序>添加。 添加命令:
/bin/bash -c "sleep 15 && while true; do
; sleep 300; done"
说明
如果从您自己的环境(例如,从终端窗口或从启动应用程序)运行脚本,则将设置许多环境变量。 然而, cron
使用一组有限的环境变量来运行脚本。
由于您的脚本无疑使用gsettings
命令:
gsettings get org.gnome.desktop.background picture-uri
设置壁纸,几乎可以肯定,从cron
运行时命令会中断。
“懒惰解决方案”的缺点纯粹是理论上的。 实际上连续睡眠的命令对您的系统没有任何意义 。
附加信息; 或者
阅读这篇文章 ,从过去的经验DBUS_SESSION_BUS_ADDRESS
,我很确定需要设置DBUS_SESSION_BUS_ADDRESS
环境变量。
为此,请在脚本开头添加以下部分(在shebang下方):
PID=$(pgrep gnome-session) export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-)
然后你应该能够从cron
成功运行它。
然而,你可以很好地拯救喧嚣,并选择懒惰的选项。
把它放在你的crontab
。
打开你的cron
表:
crontab -e
现在添加:
*/5 * * * * /path/to/script.sh
不要忘记事先使脚本可执行。
由于您的脚本依赖于X,因此将DISPLAY
添加到脚本环境中可能是个好主意:
*/5 * * * * DISPLAY=:0 /path/to/script.sh
替换:0
与您的实际DISPLAY
(可以通过交互式会话中的echo $DISPLAY
找到)。
如果需要,您也可以添加XAUTHORITY
环境变量:
*/5 * * * * DISPLAY=:0 XAUTHORITY="~/.Xauthority" /path/to/script.sh
您可以通过echo $XAUTHORITY
找到该值。