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

использование ssh для перезагрузки компьютера, когда он завис

У меня компьютер запускает тесты, иногда во время теста зависает. Я думал написать сценарий оболочки для проверки связи с тестовой машиной, и если она зависла, перезагрузите ее.

Я подключился к тестовой машине по ssh и смог ее перезагрузить, но во время зависания мне не повезло! Как его перезагрузить во время зависания по ssh?

Спасибо

спецификации: Mac OSX

Установите еще один компьютер рядом с тестовой машиной. Вам нужно будет расположить его так, чтобы привод CD-ROM находился под углом 45 градусов к тестовой машине. Расположите его так, чтобы компакт-диск при извлечении нажимал кнопку питания.

Теперь вы можете подключиться к новому компьютеру по ssh, запустить eject <device> командуйте и добейтесь своей цели.

Если он действительно завис, скорее всего, вы не сможете запустить новый процесс, а это то, что вам нужно сделать для ssh или перезапустить его.

Серверы, которые действительно нуждаются в удаленном перезапуске в этой ситуации, часто имеют дополнительное оборудование, такое как другое устройство (я думаю, что одно из них называется картой RSA), которое позволяет вам войти в систему и запустить перезагрузку, или сторожевой таймер, который ожидает, что что-то произойдет. регулярно и если этого не происходит - перезагружается.

Другая возможность - запустить ваш сервер как виртуальную машину под гипервизором, таким как VMWare, Xen или VirtualBox, а затем вы можете войти на корневую машину (называемую dom0 в Xen) и перезагрузить зависшую виртуальную машину.

Что вы имеете в виду под зависанием? Если вы имеете в виду, что служба SSH зависла, то вы не можете перезагрузиться. Если под зависанием вы имеете в виду, что ЦП забивается, возможно, вам придется немного подождать. Если под зависанием вы имеете в виду, что какой-то процесс завис, что не позволяет системе выйти из строя, то вам, возможно, придется сначала убить процесс, а затем выполнить завершение работы. Кроме того, у вас может быть настройка системы безопасности, не позволяющая вам выдать команду выключения через ssh.

Хотя я склонен согласиться с теми, кто предлагает вам попытаться найти причину зависания, возможно, вам повезет больше, если вы просто будете держать соединение ssh открытым все время.

Если вы добавите что-то вроде ClientAliveInterval 300 th sshd.conf на сервер, вы можете постоянно держать соединение открытым, что фактически означает, что вам не нужно запускать новый процесс на машине, которую вы пытаетесь перезагрузить, с момента запуска нового процесса может быть одной из причин, с которой у него проблемы.

Как сказано в предыдущем ответе, если есть истинное зависание (сбой ядра или около того) - у вас остаются очень ограниченные возможности при перезагрузке. Функциональность, которую вы ищете, - это управление отключением света, также известное как внеполосное управление. Узнать больше об if от Википедия

О да, этот вопрос был бы больше дома на serverfault

Вы можете попробовать программный сторожевой таймер.

Ядро Linux включает ядро ​​под названием «softdog» [1] как часть проекта linux-ha.

http://www.linux-ha.org/softdog

Блок дистанционного управления питанием или «управляемый блок питания» можно приобрести менее чем за 200 долларов. Затем вы подключитесь к нему через Telnet и перезагрузите блок питания.

пример

эхо b> / proc / sysrq-trigger

лучше, конечно, было бы последовательно эхо e i s u b ... но это может не сработать ...