Linux перезагрузка при зависании

R E I S U B — магическая перезагрузка Linux

У вас завис компьютер с любимой операционной системой Linux? Ничего не работает, мышка не двигается? Нужно перезагружать, но боязно? Прошлый раз после перезагрузки по питанию файловая система побилась и пришлось убить пол дня на переустановку системы? Нет резервных копий личных файлов?

Как правильно перезагрузить Linux если всё висит? Вам поможет клавиша SysRq и магическая комбинация R E I S U B! После такой перезагрузки не нужно выполнять FSCK.

Кратко о SysRq

84-я клавиша SysRq (System Request) была добавлена IBM в клавиатуру IBM PC/AT для того, чтобы можно было вызывать низкоуровневые функции операционной системы без риска конфликта с любым существовавшим программным обеспечением. Для кнопки SysRq было добавлено программное прерывание BIOS номер 0x15, подфункция 0x85, которое сообщало ОС о нажатии или отпускании клавиши SysRq.

Не будем сейчас упоминать Windows, там свои заморочки. А в Linux SysRq — единственная прямая связь с ядром (если ядро ещё способно работать), которая работает всегда, даже если всё другое не работает.

Как использовать R E I S U B

Во-первых, в конфигурации ядра должно быть включено использование клавиши SysRq. CONFIG_MAGIC_SYSRQ должно иметь значение Y.

Видов Linux много, где-то эта опция включена, где-то нет. В Debian и Ubuntu такая настройка есть. Проверить можно командой:

Если опция включена, то в ответ вернётся единица. Если вернётся ноль, то можно включить опцию:

Зажимаем Alt + SysRq и с интервалом в 2 секунды нажимаем по очереди клавиши R E I S U B . Каждая кнопка выполняет свою функцию. При такой комбинации происходит:

  • un R aw — перехватывает управление мышью и клавиатурой у Х-сервера.
  • t E rminate — посылает SIGTERM всем процессам, кроме init.
  • k I ll — посылает SIGKILL всем процессам, кроме init.
  • S ync — пытается синхронизировать все примонтированные файловые системы.
  • U nmount — пытается перемонтировать все примонтированные файловые системы в режим read-only.
  • re B oot — перезагрузка.
Читайте также:  Как сбросить пароль root kali linux

Примечание

Иногда клавиша SysRq совмещена на клавиатуре с какой-то другой, например PrtScr/SysRq. При нажатии получаем скриншот. Это можно обойти добавлением клавиши Ctrl. Тогда полная комбинация будет:

Ctrl + Alt + SysRq + R E I S U B

Примечание 2

Специалисты столкнулись с трудностями в поиске клавиши SysRq. Не оставим их в беде. Итак, задачка. Найди SysRq на картинке:

Источник

Автоматическая перезагрузка зависшей системы

Возможно ли перезапустить автоматически систему в случае если она намертво зависла? Имеется сервер (на основе обычного пк), и время от времени, обычно раз в несколько дней, он намертво виснет. Причин не знаю, да и как диагностировать тоже. В логах чего-то криминального не вижу, но последняя запись почти всегда «Failed to connect to coredump service: Connection refused». Однако вопрос не в этом.

Возможно но ли заставить систему перезагрузиться в случае такого фриза? Например повесить хук на появление этой ошибки?

Пока мне в голову пришло только подключить ардуину и написать программу, которая раз в некоторое время будет посылать пинг на ардуину, и в случае его отсутствия замыкать контакты sw reset.

У тебя в сервере наверняка уже есть watchdog, иногда их аж два — в чипсете и в микросхеме мониторинга, которая температуру на матери измеряет, напряжения, управляет вентиляторами и т.п. У меня это «Intel TCO Timer/Watchdog» (модуль ядра iTCO_wdt) встроенный в чипсет Intel C604 и «Watchdog timer for W83627HF/W83627DHG and compatibles» (модуль w83627hf_wdt) встроенный в микросхему мониторинга nct6779.

Находятся они в menuconfig ядра «Device Drivers > Watchdog Timer Support». Какие они у тебя — изучай своё железо. Чипсет я думаю ты и сам знаешь, а микросхему мониторинга sensors-detect из пакета lm-sensors тебе нащупает. А дальше читай описания модулей ватчдогов в menuconfig, там написано под какое они железо, гугли и т.п. Проверь настройки БИОС, там может быть соответствующий пункт, а может и не быть, от вендора зависит.

Читайте также:  Alt linux рабочая станция 10

Потом прописывай понравившийся модуль в загрузку, читай https://www.kernel.org/doc/html/latest/watchdog/index.html , настраивай демон watchdog, который буде мониторить /dev/watchdog.

Jameson ★★★★★ ( 30.07.22 20:45:56 MSK )
Последнее исправление: Jameson 30.07.22 20:46:24 MSK (всего исправлений: 1)

написать программу, которая раз в некоторое время будет посылать пинг на ардуину, и в случае его отсутствия замыкать контакты sw reset

Почему нет, аппаратный ватчдог так и работает.

А все эти вочдоги будут работать если фриз происходит из-за kernel panic? Я не уверен что это оно, т.к. монитор не подключен, но и такое исключать нельзя.

Почему нет, аппаратный ватчдог так и работает.

Колхоз на ардуине то зачем, когда ватчдог уже испокон веков в любых серверах изначально присутствует? И не только в серверах, но и в десктопах тоже. И достаточно просто научиться им пользоваться.

Прочитай про условия его срабатывания в документации, я не зря ссылку на неё принёс. kernel panic бывает разный. В systemd кстати есть и софтварный ватчдог, можешь его тоже поизучать. Но он конечно же ничем не поможет в случае «жёсткого» зависания, для этих случаев как раз аппаратные используются.

иди на аляэкспресс в поиске вводишь
«ватчдог собака перезагрузка типа флешка»
вставляешь в комп и радуешься..

И каким же волшебным образом он ресетнёт систему через USB в случае «жёсткого» её зависона?

Jameson ★★★★★ ( 30.07.22 21:55:38 MSK )
Последнее исправление: Jameson 30.07.22 21:55:55 MSK (всего исправлений: 1)

Вышесказанное будет не решением, а обходом, поэтому рекомендуется помимо этого еще в отдельной теме спросить, как починить зависания, указав конфигурацию сервера inxi -Fz , лог после падения, реагирует ли на REISUB и после чего перестало работать как надо.

Читайте также:  Кому принадлежит операционная система linux

Он подключается проводом к разъему перезагрузки на мат. плате, и если компьютер перестает по USB отправлять команду сброса таймера, то замыкаются контакты перезагрузки.

Ясно, обычный «внешний» ватчдог для тех кому проще заплатить чем настроить тот что у них и так уже в железе есть. IMHO сейчас чипсетов без встроенного ватчдога просто не делают. Хотя я читал пару раз что по причине кривизны рук китайских инженеров и БИОСописателей встроенный ватчдог может быть остановлен и не включаться из ОС, так как нужный регистр на запись заблокирован. Лично с таким ни разу не встречался пока.

зависит от степени «мёртвости» зависания. Если реагирует только на Alt+SysRq+b, то, боюсь, перезагрузить можно только робо-манипулятором, нажимающим эти волшебные кнопочки…

 /proc/sys/kernel/panic This file gives read/write access to the kernel variable panic_timeout. If this is zero, the kernel will loop on a panic; if nonzero it indicates that the kernel should autoreboot after this number of seconds. When you use the software watchdog device driver, the recommended setting is 60. 

Имеется сервер (на основе обычного пк)
он намертво виснет.
Пока мне в голову пришло только подключить ардуину и написать программу
и . замыкать контакты sw reset.

А мыслей, что с железом что-то не так, ещё не приходило?

мне в голову пришло только подключить ардуину

Почему именно ардуину? Как вы приходите к такой мысли. Это ж образовательный проект.

У тебя в сервере наверняка уже есть watchdog

Источник

Оцените статью
Adblock
detector