有一个非常类似的问题这,但我的情况还有一个额外的细节。
基本上,我使用 ControlMaster 来加速 SSH 连接。因此,我使用:
CurrentUser=$(whoami)
session=$(ps -el | grep $(id -u) |sed -e 's/sshd//g'| grep ssh)
if [ "$session" = "" ]
then
ssh -TMNf [email protected] &
fi
这段代码之后,我还有另一个命令。ssh 命令的目的仅仅是在后台运行,以便保持打开的套接字以实现更快的连接(如果短时间内没有发生调用,则它会因不活动而超时并关闭。)
问题是这个脚本不会关闭并返回给调用者。它成为一个 <defunct> 进程,直到我手动终止创建的 ssh 会话才会返回。我怎样才能让脚本返回给调用者和创建的 ssh 是否在后台运行?
编辑: 我希望创建的 ssh 会话在脚本结束后继续存在,以便保持套接字打开,以便在此之后使用 rsync 命令实现更快的连接。使用打开的套接字,我将传输时间从 3-4 秒缩短至几毫秒
答案1
你想和禁止命令?