我有一个仅具有 GUI 的应用程序,需要不断运行。问题是我无法为该应用程序安装完整的桌面(我的操作系统是 Debian 和 ubuntu CLI)。
所以我想知道是否有办法在屏幕上或 tmux 之类的服务器上运行此应用程序?这样我就可以转发 X 并继续使用它。
答案1
这有两个方面 - 第一是让 gui 进程归属于一个不会终止的进程。有很多方法可以实现这一点,但如果这是您当前的工作方式,那么让 tmux 拥有该进程就“足够好了”。
第二个是将 gui 输出放在某个地方。如果您希望 gui 输出既出现在运行该进程的服务器的屏幕上,又能够远程访问它,那么x11vnc是一个很好的选择,并且存在于大多数发行版中。您只需要一个 X11 会话,因此不需要完整的桌面,只需足够的 X 来显示 gui 和 x11vnc。
这会将运行它的 X 会话公开为 VNC 会话,因此可以远程访问。理想情况下,您可以通过 ssh 执行此操作,因为 vnc 的安全性不高。
答案2
查看 Xpra,它允许远程 X 应用程序并中断连接。它非常像“tmux for X”。
答案3
使用 X Windows 的 GUI 程序需要连接到服务器(您的图形头)。如果您断开连接screen
/ tmux
(保持会话),与服务器的连接可能仍会断开(例如,如果您关闭/睡眠/休眠本地计算机)。只要与服务器保持连接$DISPLAY
,您的应用程序就会继续运行。如果您使用 SSH 和 X 转发,那么当 SSH 会话结束时,连接也会结束。
所以是的,您可以从 CLI 无限期地运行该应用程序,但这取决于服务器和客户端之间的连接是否保持正常。