我正在使用 Porteus 3.2.2 通过 SSH 隧道连接到互联网上的 VNC 服务器,并且我正在尝试尽可能地实现其自动化。
我有这个脚本可以创建隧道并使其保持打开状态,但我想对其进行一些调整。
#!/bin/bash
#create SSH tunnel
ssh -L 5901:192.168.1.200:5901 -t [email protected] 'vncserver -geometry 1280x800; /bin/bash'
#open vncviewer
vncviewer -fullscreen localhost:5901
exit 0
我希望登录服务器后最小化终端窗口。
另外,登录成功后,我希望它打开没有终端窗口的 vncviewer,并使用上述选项。
我使用脚本的方式不起作用,因为它仅在 ssh 隧道关闭后启动。而且我无法使用“&”将 ssh 隧道发送到后台。此外,如果我将 vncviewer 放在 SSH 隧道之前并将其发送到后台,我就无法使用选项……
有什么帮助吗?
提前致谢
答案1
将该选项添加-f
到您的 SSH 命令行应该会让您更接近您想要的效果:它会导致 ssh 客户端进入后台,但仅在建立连接并且任何密码请求都已满足后才允许vncviewer
在建立 SSH 连接后启动。
如果在远程系统上启动 VNC 服务器需要花费相当长的时间,您可能需要在命令行和命令行sleep <some number of seconds>
之间添加,以允许 VNC 服务器在尝试连接之前完成启动。ssh
vncviewer
vncviewer
最小化终端窗口需要向本地桌面环境的窗口管理器发送“最小化/图标化此窗口”命令。详细信息取决于您使用的桌面环境类型,但一般来说,这些命令wmctrl
或xdotool
可能能够做到这一点。
请参见: 如何从控制台隐藏或最小化 X11 窗口?