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