具有永久 ssh 连接的 bash 脚本

gra*_*sty 3 scripting linux ubuntu ssh bash

我使用运行的 bash 脚本

/usr/bin/ssh -f -N -T -L8888:127.0.0.1:3306 serveradmin@34.324.234.23
Run Code Online (Sandbox Code Playgroud)

但是,当我运行 bash 脚本时,它会等待.. 我看到连接出现但脚本没有退出.. 就像它在等待 SSH 进程完成一样,因为当我手动杀死它时,bash 脚本完成为好。

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

更新: 我已经编写了这个脚本..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>
Run Code Online (Sandbox Code Playgroud)

当我杀死 ssh 时,不复存在的人消失了..为什么他们会不复存在?

Edu*_*nec 8

看来您正在尝试重新实现一些autossh(apt-get install autossh)。

创建一个没有密码的 RSA 密钥对,在 serveradmin@34.324.234.23 上安装公钥并尝试:

autossh -f -N -L8888:127.0.0.1:3306 serveradmin@34.324.234.23
Run Code Online (Sandbox Code Playgroud)