Я знаю, что 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» в командной строке в зависимости от того, что вы предпочитаете, чтобы произошло с машиной?