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

问题描述 投票:0回答:1

我需要在脚本中通过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的退出代码而不会出现管道错误?

bash ssh shutdown
1个回答
0
投票

我认为正确的方法是,这样你重新启动机器...“ - h”标志将关闭它。

sudo shutnow -r now

如果挂起有问题,以下可能会有效,

nohup sudo shutdown -r now

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

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

适用于Linux用户

© www.soinside.com 2019 - 2024. All rights reserved.