Мне нужно перезагрузить удаленный сервер через 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 для входа в систему и выхода с кодом завершения перезагрузки после отправки команды перезагрузки, не получив сообщение об ошибке сломанного канала?