Firefox,两台 Linux 机器,一台 X 服务器

Pau*_*ulM 10 linux firefox ssh xorg putty

我有一台 Linux 机器,我经常从 Windows 通过 ssh (putty) 登录。我在 Windows 桌面上运行 VcXsrv X-server。我主要用它来运行调试器 (ddd) 和 firefox 来访问我们基于 Web 的代码审查系统。使用 Linux firefox 很方便,因此我可以从脚本启动它。我通常使用“-new-tab”启动它,以免继续创建新窗口。

现在我有一台新的更新 Linux 机器,我暂时与旧机器一起运行。我注意到一些奇怪的行为:当我启动一个新的 firefox 会话时,如果有一个已经在任何一台机器上运行,那么它就会使用它。

我希望能够做的仍然是作为一个新选项卡启动,但只能在当前机器的 firefox 实例下启动,而不是在同一台 X 服务器上显示的来自不同机器的实例。

我一直在玩各种标志,包括 -no-remote、-new-instance 以及定义和使用特定的配置文件。但是我一直无法得到想要的结果。要么我得到我上面描述的行为,要么我收到一条错误消息,说“Firefox 已经在运行但没有响应,请关闭它”。

编辑:我被要求编辑它以提供一些示例。

好的。在下文中,我将提到 M_OLD 和 M_NEW。这些是运行不同版本 Linux 和不同版本 Firefox(1.5 和 19)的单独机器。我通过一个名为 Putty 的 ssh 客户端连接到它们,并将 X 转发到我的 Windows 桌面上的 X 服务器。只涉及一台 X 服务器。

示例 1:

所以从我的腻子会话到 M_OLD 我运行:

firefox www.google.com &
Run Code Online (Sandbox Code Playgroud)

从我的 M_NEW 腻子会话中我运行:

firefox www.imdb.com &
Run Code Online (Sandbox Code Playgroud)

然后我得到一个带有两个选项卡的 firefox 1.5 窗口。如果我反过来做同样的事情,我会得到相同的结果,但使用 Firefox 19。换句话说,如下面的评论中所述,第一个命令启动一个 firefox 实例,第二个命令只是告诉现有实例打开一个新选项卡。即使实例在另一台机器上,只要它是同一个 X 服务器。

然而我不想要这个。我想为不同的机器有单独的实例。所以:

示例 2:

所以从我的腻子会话到 M_OLD 我运行:

firefox -no-remote www.google.com &
Run Code Online (Sandbox Code Playgroud)

从我的 M_NEW 腻子会话中我运行:

firefox -no-remote www.imdb.com &
Run Code Online (Sandbox Code Playgroud)

现在我有两个单独的 Firefox 实例。但是,如果我然后在 M_NEW 上运行:

firefox -no-remote www.google.com &
Run Code Online (Sandbox Code Playgroud)

我去拿

Firefox is already running, but is not responding. To open a new window, you must first close the existing Firefox process, or restart your system.

即使我尝试

firefox -no-remote -new-instance www.google.com &
Run Code Online (Sandbox Code Playgroud)

要不就

firefox -new-instance www.google.com &
Run Code Online (Sandbox Code Playgroud)

那么我仍然会得到错误。

我真正想要的 - 这可能是不可能的 - 是为每台机器都有一个单独的实例,但是如果从那台机器启动一个新的 URL,它会打开一个新选项卡。似乎我只能为每个 URL 拥有一个带有新选项卡的实例,或者每台机器有一个实例,但一次只能有一个。

希望这更清楚。

小智 0

好吧...不知道这是否可行,但这是我尝试的第一件事:

如果您在每台计算机上创建第二个脚本,该脚本不会尝试创建新选项卡,而只是创建一个新实例,情况如何。如果您当前没有在该计算机上运行 FF,则可以使用这个新脚本,但如果它已经在运行,则可以使用创建新选项卡的旧脚本。

如果这有效,您可能可以在单个脚本中对 ps 输出进​​行一些正则表达式解析,以查看 FF 是否已在计算机上运行,​​并使用 -new-tab 开关或 -no-remote,具体取决于它的内容发现;但您可能想等到这个方法经过测试,因为它需要为可能不起作用的东西编写大量代码......