2

我在学校有一个项目要做,这让我感到困惑......我正在通过我自己的 Debian 盒子通过 SSH 连接到计算机实验室的一台 Solaris 计算机

ssh -Y name@***.cs.<school>

我可以很好地进入,X11 似乎也可以正常工作。然而,这个特殊的项目需要我们通过 xwininfo 找到一个 netscape 窗口的窗口 id,并在下面的命令中使用这个信息

netscape -id 0xa00029 -remote 'openFile(/path/to/html/file)'

现在,如果这个 netscape 是我打开的唯一窗口(xterm 除外),那么前面的命令就可以正常工作。但是,如果我打开了任何其他 iceweasel 窗口(无论我打开 netscape/iceweasel 的顺序如何),该命令将转发到我的 iceweasel,尽管事实上我在 SSH 会话中运行该命令并且两个窗口非常不同的窗口ID。

所有这些最终都必须进入一个 C 程序,但我什至无法手动让它可靠地工作!

有任何想法吗?

PS我刚刚看到这可能会有所帮助。当我使用相同的命令通过 Cygwin/X 进行 SSH 连接时,出现此错误

Warning: No xauth data; using fake authentication data for X11 forwarding.

不确定这是否重要,因为我仍然可以(显然)完美地使用 X11。

谢谢。

PPS -id 开关记录在 netscape 手册页中:

-id window-id
      Identifies an X window to receive -remote commands.  If
      you do not specify a window, the first window found is
      used.
4

3 回答 3

2

当您使用 ssh -Y 时,您请求将远程客户端转发到具有完全权限的本地 X 服务器。Netscape/Mozilla/Firefox/Iceweasel/等。远程协议通过 X 服务器运行,因此它也会被转发。

http://www.mozilla.org/unix/remote.html记录了协议,并没有提及-id. 快速查看源代码(例如,http ://mxr.mozilla.org/seamonkey/source/widget/src/xremoteclient/XRemoteClient.cpp#202 )看起来也没有希望有一个-id选项。

于 2009-02-05T00:35:22.207 回答
0

我坐在一台实际的机器上执行相同的测试,它们也都失败了……我会打开 2 个 netscape 窗口并尝试一次将命令定向到一个。最近打开的一个可以正常工作,但是任何指向另一个的命令都会被转发到同一个窗口,所以在这一点上,我确信问题在于命令没有正确执行和/或该系统上的所有内容真的,真的老了。

于 2009-02-08T22:06:44.683 回答
0

如果我打开了任何其他 iceweasel 窗口(无论我打开 netscape/iceweasel 的顺序如何),该命令将转发到我的 iceweasel,尽管事实上我在 SSH 会话中运行该命令并且两个窗口具有非常不同的窗口身份证

Iceweasel 就是这样编码的。它试图为该用户的所有打开的窗口只运行一个进程。

使用-no-remote命令行选项来避免它。看http://kb.mozillazine.org/Command_line_arguments

于 2009-07-29T22:26:32.463 回答