当前位置:首页 > 操作系统 > Linux

linux – 等待autossh连接完成

我正在尝试创建一个运行一些命令的脚本,这些命令需要很长时间才能执行并且需要持续连接,但是

autossh user@server
wait $! #or wait ${!}

commandA
commandB

不起作用(我假设因为autossh掉入后台). GUI弹出询问密码,当启动时,将运行下几个命令.

在运行下一个命令之前,如何等待已建立的连接?

更新:

autossh -f => “…导致autossh在运行ssh之前掉到后台……”

所以-f等待什么都不做,没有它,你等待永远不会结束的ssh ……

解决方法:

如果我理解正确您的问题是您希望等到身份验证成功后再继续执行其余的脚本.

我会用public key authentication and ssh-agent解决这个问题.

配置完成并且ssh-agent正在运行后,ssh将不会要求输入密码,并且您的脚本每次都会正确验证. (这与确保连接正常工作并不完全相同,但它可能足以满足您的需要)

另外还有两种解决方法:

>在while循环中使用tcptraceroute检查端口转发是否正常工作(假设您正在使用端口转发或可以为此目的创建一个端口转发).在得到成功答复之前,不要突破循环.
>将长时间运行的命令放在远程端的脚本中,然后在屏幕或nohup中执行.我过去使用的一个技巧是生成一个脚本,然后将其复制到远程端,然后使用nohup执行它.


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐