与永久的SSH连接的bash脚本

我使用一个运行的bash脚本

/usr/bin/ssh -f -N -T -L8888:127.0.0.1:3306 [email protected] 

然而,当我运行的bash脚本,它等待..我看到连接,但脚本不会退出..就像它正在等待SSH进程完成,因为当我手动杀死它的bash脚本完成好。

任何想法如何解决这个问题?

更新:我croned这个脚本..和cron进程是成为一个僵尸..实际的脚本运行得很好,对不起,与ps -auxf我得到:

 root 597 0.0 0.7 2372 912 ? Ss Jul12 0:00 cron root 2595 0.0 0.8 2552 1064 ? S 02:09 0:00 \_ CRON 1001 2597 0.0 0.0 0 0 ? Zs 02:09 0:00 \_ [sh] <defunct> 1001 2603 0.0 0.0 0 0 ? Z 02:09 0:00 \_ [cron] <defunct> 

当我杀死ssh的时候,解体消失了。他们为什么会失效?

看来你试图重新实现autossh (apt-get安装autossh)的位。

创build没有密码的RSA密钥对,在[email protected]上安装公钥,并尝试:

 autossh -f -N -L8888:127.0.0.1:3306 [email protected] 

删除$

 workstation:~$ /usr/bin/ssh -f -N -T -L8888:127.0.0.1:3306 server.host.com DSA host key for IP address '205.205.219.5' not in list of known hosts. workstation:~$ ps x | grep '\-f' 16170 ? S 0:00 /usr/bin/ssh -f -N -T -L8888:127.0.0.1:3306 server.host.com 

它会直接背景为你详细介绍我。 但是,我的testing服务器上有一个密钥对设置。

你已经在本地服务器上有8888的监听了吗? 你已经有一个实例在后台?

从terminal上分离ssh进程:

  1. 发送到后台

    /usr/bin/ssh -f -N -T -L8888:127.0.0.1:3306 serveradmin@$34.324.234.23 &

  2. 没关系吧

    nohup /usr/bin/ssh -f -N -T -L8888:127.0.0.1:3306 serveradmin@$34.324.234.23