我正在尝试创建我的第一个 cron 作业。我对 bash 脚本也很陌生,尽管我确实了解一些 python。我对以下问题感到困惑:
这是我使用以下命令创建的 cronjob 文件crontab -e
:
*/1 * * * * /home/darren/.bash_scripts/urxvt_colors.sh
内容urxvt_colors.sh
:
#!/bin/bash
python ~/.Py_Scripts/xr_random_colors.py
xrdb ~/.Xresources
这就是让我困惑的地方。所以 cron 作业的 python 部分python ~/.Py_Scripts/xr_random_colors.py
每分钟都会执行一次。这个 python 脚本更改了我的文件中的配色方案~/.Xresources
。我通过每分钟检查确认这确实发生。但xrdb ~/.Xresources
不更新文件。
跑步which python
节目/usr/bin/python
和which xrdb
表演/usr/bin/xrdb
。那么既然它们都是从 执行的/usr/bin
,为什么只有 python 脚本执行呢?
另外,如果我./urxvt_colors.sh
从终端手动运行脚本,那么它会按预期工作,python 脚本也会运行xrdb ~/.Xresources
这里发生了什么事?
答案1
尝试像这样改变你的脚本
#!/bin/bash
python ~/.Py_Scripts/xr_random_colors.py && xrdb ~/.Xresources
我建议您使用文件的完整路径。
PS也许你需要在执行脚本时定义DISPLAY var
*/1 * * * * DISPLAY=:0 /home/darren/.bash_scripts/urxvt_colors.sh