我有一台 Ubuntu 16.06LTS 系统(我们称之为 Fred),我坐在它前面使用它,并在同一个系统上运行 VNC 服务器(FredVNC)。我的问题是,当我在一个环境(即 Fred)中启动应用程序时,它只能在该环境中运行。例如,如果我启动 Libre Office 并在 Fred 上处理家中的文档,然后离开家并想打开我正在通过 VNC 客户端连接(到 FredVNC)远程检查的电子邮件中的 .doc 文件,则该 .doc 文件不会在 VNC 中打开,而是在我的本地桌面...Fred 上打开。我必须回到家才能看到它。或者(或者)我可以终止 -9 Libre Office,然后在 VNC 中打开该应用程序。但这样一来,Fred 上所有打开的文档都有丢失数据的风险。
我想要的是一种可以单独打开两个并行应用程序实例的方法...这样我就可以在 VNC 中使用 Libre Office 工作,同时在 Fred 上打开 Libre Office 文档。
我假设(也许有点天真)有一种命令行方式可以打开一个程序实例,并将其分配给 VNC 或 Fred Display。我尝试搜索这个,但不幸的是,我陷入了关键字噩梦。似乎没有任何东西可以选择正确的术语,我得到的结果是完全偏离主题的。
如果有人知道我需要做什么,那将非常有帮助。提前谢谢!
答案1
看起来您的 VNC 服务器创建了一个虚拟桌面,而不是提供现有桌面(我认为这是更常见的行为)。此外,Libre Office 对每个用户使用一个“主”进程。当您打开其他文件时,新进程会检测现有文件,将作业依赖它并退出。我猜旧进程会坚持在启动时显示的任何内容。
在您终止旧进程后,新进程可以打开文件并继续存在,从现在起成为“主” Libre Office 进程。它使用显示它认为正确。
我认为您可以重新配置 VNC 服务器以提供现有桌面。另一方面,我猜您有理由使用单独的虚拟桌面,因此您可能不想更改这一点。
我想要的是一种可以单独打开两个并行应用程序实例的方法...这样我就可以在 VNC 中使用 Libre Office 工作,同时在 Fred 上打开 Libre Office 文档。
我不知道有什么方法可以让 Libre Office 忽略为同一用户运行的旧进程。有一个--display
选项,但我无法让它工作。
请参阅这个问题:X11 转发 - 抓取已在运行的程序的窗口。我的回答介绍了xpra
。如果您使用 运行(第一个)Libre Office xpra
,您将能够从其他地方附加到它的窗口。
看你还能做什么。我认为,与 VNC 相比,它的主要优势在于能够在连接时选择操作模式。您可以启动新桌面、克隆现有桌面、运行程序或附加到已在运行的程序xpra
。我认为非常灵活。
在最坏的情况下,您只能回到现有桌面,轻轻关闭非“ xpra
-ed” Libre Office 窗口而不会丢失数据。然后,您将重新运行 Libre Office,这次xpra
仍使用 ,来自远程客户端。