【发布时间】:2019-02-12 22:25:15
【问题描述】:
我需要在脚本中通过 ssh 重新启动远程服务器并收到 0 退出代码。
我已将所有内容设置为使用密钥而不是密码;所以我可以远程登录。问题是当我发送shutdown -r 命令时,ssh 会报告一个损坏的管道。
我尝试过使用-oConnectTimeout=1 和-oTCPKeepAlive=no。我也尝试过使用shutdown -r -t 30 延迟关机,但它似乎不起作用。
ssh thor@$hammer_time -oBatchMode=yes "sync; sync; shutdown -r"
现在脚本将挂起一分钟,并报告非零退出状态:broken pipe,因为服务器刚刚重新启动,所以我预计会出现这种情况。如何让 ssh 登录,并在发送重启命令后使用重启的退出代码退出,而不会出现管道损坏错误?
【问题讨论】:
-
对我来说,以下所有
ssh命令在 Ubuntu 18.04 上以0状态正常退出。ssh sever 'sudo shutdown -r'、ssh sever 'sudo shutdown -r 0'、ssh sever -oBatchMode=yes 'sudo shutdown -r 0'。我无法重现损坏的管道错误。 -
我没想到!他们在服务器上使用不同的操作系统,并使用自定义关闭脚本。谢谢!那我应该删除这个问题吗? @Socowi?
-
您可以删除此答案,但如果您能回答自己的问题,这样其他有相同问题的人也可以从您的发现中受益,那就更好了。