如何通过ssh关闭远程服务器而不出现“管道中断”错误?

时间:2019-02-12 22:25:16

标签: bash ssh shutdown

我需要在脚本中通过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登录,并在发送重新启动命令后使用重新启动的退出代码退出,而不会出现管道破裂错误?

1 个答案:

答案 0 :(得分:0)

我认为正确的方法是,这样可以重新启动计算机...“ -h”标志将其关闭。

sudo shutnow -r now

如果挂断有问题,则可以执行以下操作

nohup sudo shutdown -r now

您正在命令作业在断开连接后在后台运行

gnome-session-quit --power-off
gnome-session-quit --reboot --force

适用于Linux用户