运行 cronjob 时“无法使用 GNOME Shell 的内置屏幕截图界面”

运行 cronjob 时“无法使用 GNOME Shell 的内置屏幕截图界面”

我有一个脚本可以截取屏幕截图并将其保存到 GDrive 连接的文件夹中:

#!/bin/bash
 
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin
SHELL=/bin/bash
 
 
#This takes and stores the picture:
 
gnome-screenshot -f /run/user/1000/gvfs/google-drive:host=gmail.com,user=sequestranaut/0AFiS_dr3-R8XUk9PVA/1g82k8rd0L54vmYTHzrqoR_4Ys7Rg_1w1/$(date '+%e-%m-%a-%T')
 
 
#This clears the folder:
 
if [ $(ls /run/user/1000/gvfs/google-drive:host=gmail.com,user=sequestranaut/0AFiS_dr3-R8XUk9PVA/1g82k8rd0L54vmYTHzrqoR_4Ys7Rg_1w1/* 2/dev/null | wc -l) -gt 799 ] 
  then rm -f /run/user/1000/gvfs/google-drive:host=gmail.com,user=sequestranaut/0AFiS_dr3-R8XUk9PVA/1g82k8rd0L54vmYTHzrqoR_4Ys7Rg_1w1/* 
fi

我已经测试了该脚本并验证了如果从终端正常启动的话它可以工作。运行它的退出代码为零,从 shell 运行时它的行为符合预期,所有用户都存在执行权限,但由于某种原因我无法让它通过 crontab 运行:

*/1 * * * /home/iain/Scripts/ScreenshotScript.sh
*/1 * * * * /home/iain/Scripts/test.sh

上面列出的另一个 cronjob 工作得很好。它将 date 命令的输出附加到我的桌面上的文本文件中,没有任何问题,所以我认为这不是 crontab 本身的问题。

每次使用 ScreenshotScript 时,我都会收到一条错误消息:

(gnome-screenshot:110460): GLib-GIO-CRITICAL **: 15:07:01.783:
g_dbus_connection_call_sync_internal: assertion 'G_IS_DBUS_CONNECTION
(connection)' failed
 
** Message: 15:07:01.783: Unable to use GNOME Shell's builtin screenshot interface, resorting to fallback X11.

我认为问题出在 $DISPLAY 变量上,所以我通过将其放在脚本的顶部来更改它:

if [[ -z "$DISPLAY" ]]  
    then
    DISPLAY=":0" 
    export DISPLAY  
fi

但这并没有改变任何事情。

此外,我尝试在 X11 而不是 Wayland(我当前的显示服务器)中运行脚本,但仍然遇到相同的错误。

有人能指出我正确的方向吗?

相关内容