我已经通过 ssh 连接到远程机器。我启用了 X11 转发 (ssh -X) 并启动了一个 GUI 程序。
程序需要 5 分钟来设置执行一些处理,但实际处理需要 1-2 小时。我不想在程序运行时流式传输数据。我什至不想再看到该程序,因为它在完成时会生成文件作为输出,我可以直接对它们进行 scp。
那么我怎样才能退出 ssh session 但让程序在机器上运行呢?终端中的 CRTL+C?
编辑:有关答案,请参阅下面我的评论。
最佳答案
长话短说 - 如果不对运行方式进行一些修改,就无法做到这一点。 GUI 应用程序要求 X 服务器目标接受它的 GUI 更新 - 如果您使用本地 X 服务器执行此操作,那么它将需要 (1) 打开连接 (2) 您实际处理更新。
解决这个问题的方法是使用类似 Xvfb 的东西- 这是一种托管虚拟 X 服务器的 headless 方式。除了维基百科页面上提供的示例之外,似乎经常使用此机制的人是 Selenium用户。
关于linux - 使用正在运行的 GUI 程序退出 ssh -X session ,但让程序在远程主机上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9572458/