我正在尝试运行需要访问我的 X 会话的 cron 作业。我知道我的 X 会话将始终为 :0,所以其中一部分很简单:
/30 * * * * DISPLAY=:0 command
但问题是 gdm3 不再使用$HOME/.Xauthority
;相反,它使用/var/run/gdm3/auth-for-anthony-XXXXXX/database
X 更改每次登录的位置。
除了$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>
让我知道事情的后续。