从 hostA (我的 Linux 桌面),我通过 ssh 进入 hostB :
$ ssh hostB -X
$ (nohup xterm &)
$ (nohup xterm &)
$ exit
## i don't get my prompt back
xterm 窗口显示在 hostA 上,但我通过 ssh 连接到 hostB 的终端没有向我返回提示。
如果我按 Control+C,我会收到提示,但 2 个 xterm 窗口已关闭。
有没有办法在另一台主机的后台运行 xterm 并释放原始终端?
谢谢
- 安德鲁
答案1
-X 选项打开通过 ssh 连接运行的 X11 隧道。仅当 ssh 连接打开时,隧道才能存在。
要执行您要求的操作,您需要将 ssh 本身置于后台,而不涉及交互式会话。
至少有两种方法可以做到这一点。一种是设置 ssh 连接共享,这将允许您在后台打开 ssh,然后使用共享连接启动多个 ssh 会话。 ssh 手册页有这方面的详细信息。
更简单的方法是在后台打开 ssh 只是为了打开两个 xterm 会话:
ssh -n -X hostB sh -c "xterm&xterm" &
该-n
选项告诉 ssh 不要使用 stdin,这允许将其放置在后台。如果ssh需要密码,可以省略最后的&
,输入密码,然后挂起放到后台。