Назад | Перейти на главную страницу

Зависание и сломанная труба при перезагрузке по ssh

Я пытаюсь перезагрузить один ящик из другого, используя следующую команду:

ssh 10.0.0.26 'reboot --force'

Я ожидаю, что это будет заблокировано на короткое время, пока другой блок не перезагрузится, а затем вернется. Я вижу, что какое-то время происходит бездействие, затем, если я нажимаю клавишу, я получаю «Ошибка записи: сломана труба».

Перезагрузка другого окна работает так же, как и ожидалось, но я хотел бы очистить вывод на локальном поле, в идеале, не скрывая все это в / dev / null.

Я использую OpenSSH 5.3p1 на Redhat 6.

Редактировать: Я нашел собственное решение; Я добавлю это в качестве ответа ниже. Кажется, я пока не могу с этим согласиться. Я думаю, это дать другим шанс предложить лучшее решение.

Строка, которая работает, выглядит следующим образом:

ssh 10.0.0.26 'reboot --force >/dev/null &'

Финал & сообщает другой системе, что нужно запустить команду в фоновом режиме. Однако одного этого недостаточно, поскольку соединение ssh пытается оставаться открытым в случае любого вывода. Следовательно, отправка stdout в null.

Вы можете запланировать перезагрузку вместо немедленной перезагрузки. Посмотри на эта почта.

Если вы действительно хотите подождать, пока перезагрузка не будет в полном разгаре (например, сеансы ssh прерваны), тогда опрашивайте сервер один раз в секунду и выйдите, если он не ответил в течение 5 попыток:

ssh -o ServerAliveInterval=1 -o ServerAliveCountMax=5 10.0.0.26 'reboot --force > /dev/null'

[Обсуждение Вот указал мне на правильные параметры.]