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

Отправить Ctrl-Alt-Del по SSH?

Я знаю, что Linux может, в зависимости от конфигурации, разрешить интерактивному пользователю перезагрузить сервер, нажав Ctrl-Alt-Del даже без входа в систему. У меня есть удаленная консоль сеанс через SSH на удаленный сервер, на который я не могу войти, но хочу его перезагрузить. Можно ли как-нибудь отправить комбинацию клавиш Контроль-Alt-Удалить через SSH (или telnet)? Если да, то как?

Редактировать: чтобы уточнить, я не просто подключен к серверу sshd над ssh - Я подключен через переключатель KVM over IP, так что это последовательная консоль. Но само это соединение осуществляется через SSH, и мой вопрос в том, как отправить Ctrl-Alt-Del комбинация клавиш над ним.

Вы можете использовать триггер Sysrq для немедленного сброса (это похоже на нажатие ALT-BREAK-b):

echo b >/proc/sysrq-trigger

ПЕРЕД этим вы можете синхронизировать все файловые системы, чтобы не потерять никаких данных:

echo s >/proc/sysrq-trigger

Это может работать, только если в вашем ядре включен CONFIG_MAGIC_SYSRQ. Возможные ключи объяснены на Википедия кстати.

Если вы подключены к последовательной консоли и в вашем ядре CONFIG_MAGIC_SYSRQ и /proc/sys/kernel/sysrq включен (по умолчанию на моих машинах с Ubuntu), вы можете попробовать ПЕРЕРЫВ, ALT-ПЕРЕРЫВ или CTRL-ПЕРЕРЫВ (зависит от SSH к последовательному преобразователю).

Если это сработает, вы можете нажать час (в течение 5 секунд), чтобы получить список доступных команд ("s = sync filesystems" и "b = force immediate reboot"может быть то, что вы ищете).

Для получения дополнительной информации см. linux / Документация / sysrq.txt

В упомянутом вами комментарии (ttyS0) - это не локальная консоль, это последовательная консоль.

Я не думаю, что вы можете использовать Ctrl-Alt-Del с последовательной консоли.

http://osdir.com/ml/linux.hardware.dell.poweredge/2003-01/msg00200.html предлагает способ заставить magic-sysrq работать через последовательный порт - может быть, этого будет достаточно для перезагрузки сервера?

Трехпалая перезагрузка доступна только с локальной консоли.

Это обрабатывается следующей строкой inittab:

# What to do at the "Three Finger Salute".
ca:12345:ctrlaltdel:/sbin/shutdown -r now

Вам нужно будет использовать shutdown, halt или reboot команды из оболочки с привилегиями root, если у вас нет физического доступа к машине.

Посмотрите на удаленный переключатель KVM, чтобы перезагрузиться без доступа SSH. http://en.wikipedia.org/wiki/KVM_switch#Remote_KVM_devices

Возможно ли, что команда отключена? Я регулярно отключаю его на своих производственных серверах, обычно, чтобы защитить их от себя, когда я забываю, что вхожу в систему с Linux, а не с Windows, и случайно нажимаю Ctrl-Alt-Del, а затем перезагружаю машину.

На машинах, которые я оставляю для перезагрузки нетехнического специалиста, я увеличиваю время в примере Дэна с «сейчас» до «2 минут», так что есть небольшая вероятность того, что перезагрузку можно прервать, если это необходимо.

если вы знаете имя пользователя / пароль удаленного компьютера, вы можете использовать SysInternals PSShutdown команда для перезагрузки удаленного компьютера. Обратите внимание: если у вас возникли проблемы с принудительным подключением SSH к KVM, ваш сервер, вероятно, настроен так, что вы не можете перезагружать машины без входа в систему. Фактически, это значение по умолчанию для серверов от MS, если я правильно помню.

Разве не проще просто ввести «shutdown -h now», «reboot» или «halt» в командной строке в зависимости от того, что вы предпочитаете, чтобы произошло с машиной?