我一直在互联网上寻找这个问题的答案,但似乎找不到任何对我有用的方法。
我想运行一个 cron 任务,每分钟自动截取一次屏幕截图。脚本如下:
#!/bin/bash
cd /home/ville/Skrivbord/screenshot
import -display :0 -win root screenshot.jpg
手动执行时代码运行良好,但将其作为 cron 作业运行时代码不起作用。
cron 文件如下所示:
* * * * * /root/bin/screen.bash &> /dev/null
* * * * * /root/bin/syncdata.bash
另一项任务,syncdata 运行良好。
以下是我尝试过但没有成功的一些方法:
将 /root/bin/screen.bash 和 /home/ville/Skrivbord/screenshot 的权限更改为 777,并将所有者更改为 root。
将文件名更改为screen.sh(也许.bash和.sh之间没有区别?)
将导入行更改为“import -win root screenshot.jpg”和“import -display :0.0 -win root screenshot.jpg”。
添加代码:
# Set display to :0 if it's not already set.
: ${DISPLAY:=:0}
export DISPLAY
一次位于 screen.bash 中现有代码的上方,一次位于下方。
将 cron 中的行更改为“* * * * * export DISPLAY=:0 && /root/bin/screen.bash”。
什么都没起作用!
请帮我
答案1
由计划任务守护进程没有连接到 X 服务器所需的身份验证数据。尝试将以下内容放入~/.xprofile
:
if [ "$XAUTHORITY" ]; then
cp -f "$XAUTHORITY" ~/.Xauthority
fi