我想要的是:
我知道我可以在Linux中建立一个后台ssh隧道,如下所示:
ssh -Nf -L 8000:1.2.3.4:8000 username@2.3.4.5
当我退出这个终端/会话时,这个ssh隧道仍然会在后台运行。
如何使它也自动退出呢?
对于我的情况,我需要设置一个SSH隧道,几乎每次我登录我的服务器(为了绕过愚蠢的公司防火墙)。另一方面,我宁愿在注销后什么也不留下。
请注意:
这个http://www.g-loaded.eu/2006/11/24/auto-closing-ssh-tunnels/不符合我的要求。因为它要求我在ssh隧道进程之后启动我的进程,如果我使用ssh隧道的第一个任务完成了,我需要再次为第二个任务设置ssh隧道。另一方面,如果我设定一个很长的睡眠时间,那么ssh隧道将不会退出我的终端。
也许编辑.bash_logout是可能的?我希望有一个聪明的解决方案,以免涉及脚本。
发布于 2016-01-15 07:30:18
当特定用户登录到机器时,由bashrc文件启动的任何进程都会将用户的会话作为父进程。现在,除非用户的会话终止,否则进程不会自动终止。
我认为在bashrc文件中使用隧道命令是不明智的。相反,您可以在bashrc文件中创建隧道命令的别名。在特定的终端中调用别名,当您关闭该终端时,隧道将停止,因为现在该隧道的父节点将是终端。
https://unix.stackexchange.com/questions/258881
复制相似问题