使用 gdm3 时如何从 cron 作业访问 X 显示?

使用 gdm3 时如何从 cron 作业访问 X 显示?

可能的重复:
在远程 X 显示器上打开窗口(为什么“无法打开显示器”)?

我正在尝试运行需要访问我的 X 会话的 cron 作业。我知道我的 X 会话将始终为 :0,所以其中一部分很简单:

/30 * * * * DISPLAY=:0 command

但问题是 gdm3 不再使用$HOME/.Xauthority;相反,它使用/var/run/gdm3/auth-for-anthony-XXXXXX/databaseX 更改每次登录的位置。

除了$HOME/.Xauthority每次登录时符号链接到 GDM3 文件(或每次登录时编辑 crontab 等——当然是自动的.xsession)之外,还有其他方法可以让 cron 作业正常工作吗?

答案1

我假设尝试编写一个脚本来执行 shell(在登录模式下,或设置 $HOME 变量)并访问 Xsession。我对此表示怀疑,因为执行 cronjob 不会为该进程提供有效的 tty,进而很难访问 Xsession。不过,我很想知道您访问 Xsession 的目的是什么?比如启动 xterm 或浏览器?如果您尝试纯粹为了无头终端上的自动化而执行此操作,那么我建议您寻找其他替代方案,例如带有硒的自动化工具。

答案2

好的,xauth 首先尝试建立连接怎么样?以下命令联系服务器 :0 以使用 MIT-MAGIC-COOKIE-1 协议创建授权。使用此授权连接的客户端将不受信任。

    %  xauth generate :0 . trusted

然后将密钥条目添加到生成的文件中

    %  xauth add :0 . <key>

让我知道事情的后续。

相关内容