我需要在脚本中通过 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 登录,并在发送重新启动命令后使用重新启动的退出代码退出而不会收到损坏的管道错误?
正确的方法是,这样您就可以重新启动机器......"-h"标志将关闭它。
sudo shutnow -r now
如果挂断有问题,以下方法可能有效,
nohup sudo shutdown -r now
您正在命令作业在断开连接后在后台运行
gnome-session-quit --power-off
gnome-session-quit --reboot --force
适用于 Linux 用户