5

总的来说,我正在尝试从单独的外壳将按键注入 Ubuntu 登录屏幕。我在标准登录屏幕上有机器(运行 Ubuntu 10.04),我也通过 SSH 连接到机器。我尝试了以下方法(来自 SSH shell):

$ ps ax | grep X
 2844 tty8     Ss+    0:01 /usr/bin/X :0 -br -verbose -auth /var/run/gdm/auth-for-gdm-Gp2Rlq/database
$ export DISPLAY=:0
$ xdotool key Return
No protocol specified
Error: Can't open display: :0
Failed creating new xdo instance

一旦机器登录到 Ubuntu,这个完全相同的方法就可以工作,但它不适用于登录屏幕。

理想情况下,我希望能够从另一个 shell 完成登录。我不想使用自动登录。我只想能够获取正确的显示,并执行登录所需的按键。

任何帮助将不胜感激。

编辑:

感谢 nm 的提示,我能够使用它:

export DISPLAY=:0
sudo xdotool key Return

这完成了我想要的,但现在我想知道是否有办法在没有'sudo'的情况下完成这个?有没有我可以启用/禁用的标志来解决这个问题?

再次感谢您的帮助。

4

1 回答 1

6

您需要授权才能连接到显示器。注意-authX 命令的参数。这就是权威所在。

试试这个:

export XAUTHORITY=/var/run/gdm/auth-for-gdm-<whatever-it-is>/database 
export DISPLAY=:0 
xdotool key Return

您需要成为 root 才能访问授权文件。

查看man xauth(很多)更多信息。

于 2012-05-23T13:46:12.350 回答