你能帮助我解决这个问题吗?
我想分离我在服务器中启动的一个进程。此进程是一个带有一个窗口/小部件的应用程序(类似于 gedit、kate……)。我通过 ssh -X 访问服务器,并在终端中运行二进制进程。我使用过 screen 和 tmux,但问题是,一旦我运行该进程,窗口就会从服务器远程打开到我的电脑。然后,我想让进程打开,所以我关闭 screen/tmux,一旦我退出 ssh 连接,终端就会等到我关闭进程窗口,从而终止服务器中的进程。
有没有什么办法可以让进程脱离 X windows 甚至与进程分离呢?
谢谢你,詹姆斯
答案1
从问题开始所以:
我认为这是不可能的ssh
。当您有这样的进程时,它需要与 X 服务器(在您的客户端上运行)进行通信。您不能直接将其从进程中移除。
如果您需要在 X 断开连接的情况下运行进程,则需要在该远程计算机上使用 X 服务器。对于此用例,VNC 可能是更好的解决方案,因为它可以创建即使在断开连接后仍可用的虚拟显示器。
答案2
使用更好的 ssh 选项
nohup ssh -p xxxx -i ~/.ssh/key -X -C -c blowfish -N user@server <command> &
-p 端口(如果你不使用默认的 22) -x = 允许 X 转发 -C -c = 压缩和压缩协议(在我看来 blowfish 是最快的) -N = 无控制台 nophu - 允许你关闭终端(如果你愿意)
= 要运行的命令(gedit 等)
根据您的需要,您可以转发端口(最好使用 Firefox 等应用程序)。