[В ЧаВо] Linux «завис»! Что делать?!?

Судя по последним вопросам на форуме в разделе «Устранение возникших проблем» не хватает раскрытия этой темы.

Не всё то Windows, что висит

Главный совет:

Цитата:
В случае возникновения каких-либо неприятностей не паникуйте, а не спеша разберитесь в сложившейся ситуации. Linux не так уж
просто довести до полной неработоспособности и утраты ценных данных.
Однако поспешные действия отчаявшегося пользователя могут привести к плачевным результатам. Помните, что решение есть, и оно обязательно найдётся!

Если ваш Linux «завис» – то есть картинка на мониторе статична, система не отзывается на действия мышью и клавиатурой – не торопитесь нажимать кнопку Reset. Это может привести к потере данных и даже к более серьёзным неприятностям.
Скорее всего, Linux только выглядит зависшим. И существуют способы вернуть его работоспособность, не прибегая к «экстремальной» перезагрузке.

Способ 1. Сочетание Ctrl-Alt-BackSpace. Данная комбинация используется для перезапуска X сервера. Честно говоря, способ «так себе», и вы, скорее всего, потеряете данные, с которыми работали на момент «зависания», зато – быстро. Но! Опция эта выпилена в Xorg-server'е начиная с версии 1.6. Её можно включить (см. статью в офф. wiki) например посредством setxkbmap -option terminate:ctrl_alt_bksp, но сделать это нужно, естественно заблаговременно.
Для продвинутых также есть вариант Ctrl-Alt-F{1,…6} — переключение в «консоль».

Способ 2. Предусматривает использование клавиши PrtScr/SysRq. PrtScr/SysRq — одна из «низкоуровневых» клавиш, для получения сигнала с которой не нужны костыли типа драйверов.
Использование этого способа позволит вам максимально бережно перезагрузить систему, правильно завершив работу многих процессов, и уменьшает риск повреждения данных на жестких дисках.

Нажмите сочетание клавиш Ctrl-Alt-PrtScr/SysRq и, удерживая их, жмите на клавиатуре: R E I S U B. Между нажатием «буквенных» клавиш делайте достаточно большие паузы — не менее 15 секунд — чтобы предыдущая команда успела завершиться. Клавиша Ctrl используется в данном сочетании, если до зависания вы работали в графическом интерфейсе. В противном случае используйте Alt-PrtScr/SysRq. Следует отметить, что работает этот способ независимо от текущей раскладки.

Произойдёт следующее:
Ctrl-Alt-PrtScr/SysRq-R — отберёт управление клавиатурой у графики Linux и заставит её работать напрямую с системой. По сути — вернёт управление клавиатурой.
Ctrl-Alt-PrtScr/SysRq-E — пошлёт сигнал завершения всем запущенным процессам, кроме init. То есть, все пользовательские процессы постараются завершиться в штатном режиме.
Ctrl-Alt-PrtScr/SysRq-I — пошлёт сигнал уничтожения всем запущенным процессам, кроме init. Теперь процессы, включая те, чьё нормальное завершение невозможно — уничтожатся.
Ctrl-Alt-PrtScr/SysRq-S — синхронизирует диски, что уменьшает риски
повреждения данных от сбоя.
Ctrl-Alt-PrtScr/SysRq-U — отмонтирует все файловые системы.
Ctrl-Alt-PrtScr/SysRq-B — перезагрузит систему.

Ну а после загрузки (перезагрузки) — анализировать журналы в поисках причины зависания.

Конечно, о доступности этой функции тоже следует позаботиться заранее.
Проверка поддержки ядром комбинаций клавиш с использованием SysRq:
$ zgrep SYSRQ /proc/config.gz
если функция включена, вывод будет выглядеть:
CONFIG_MAGIC_SYSRQ=y

Однако и в этом случае возможность использования SysRq может быть отключена.
Это можно проверить:
# sysctl kernel.sysrq
kernel.sysrq = 1
'1' означает, что функция включена, иначе надо поменять действующее
значение (man sysctlsysctl -w kernel.sysrq=1) и зафиксировать изменение
в файле /etc/sysctl.conf:
kernel.sysrq = 1

Другие полезные сочетания с Alt-PrtScr/SysRq:
Alt-PrtScr/SysRq-K — Secure Access Key, убивает все программы в текущей
виртуальной консоли. Полезно, когда могут работать программы, способные
украсть пароль или работают процессы, мешающие переключить консоль
Alt-PrtScr/SysRq-L — kiLl, уничтожает вообще все запущенные процессы
Alt-PrtScr/SysRq-O — tirn Off, немедленно выключает компьютер
Alt-PrtScr/SysRq-P — PС, выгружает регистры и указатели в консоль
Alt-PrtScr/SysRq-T — Tasks, показывает в консоли список всех процессов
Alt-PrtScr/SysRq-M — Memory, показывает в консоли информацию о памяти
Alt-PrtScr/SysRq-[0-9] — Задаёт уровень журналирования ядра и
перенаправляет вывод сообщений на экран.
Подробности в документации (/usr/src/linux/Documentation/sysrq.txt).

Основано на http://www.it-simple.ru/?p=878

В литературной обработке пожелавшего сохранить инкогнито пользователя гентуру. ☺

Да, многообещающая вещь.

Да, многообещающая вещь. Кто-нибудь уже пользовался, как оно?

учитывая возраст фичи, надо

учитывая возраст фичи, надо наоборот спрашивать, кто не юзал )

на десктопе профит не вилик, если специально не искать, то не заметен

>>Учитывая возраст фичи, надо

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

>>на десктопе профит не вилик, если специально не искать, то не заметен

Ну да, а на серверах иксов зачастую нет.

wi написал(а): >>Учитывая

wi написал(а):
>>Учитывая возраст фичи, надо наоборот спрашивать, кто не юзал
Я. У меня почему то линукс не виснет никогда :(

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

wi написал(а):
>>на десктопе профит не вилик, если специально не искать, то не заметен
Ну да, а на серверах иксов зачастую нет.

На серверах зачастую и с физической консолью… не всё так просто.

:wq
--
Live free or die

«На серверах» лучше

«На серверах» лучше планировать ситуацию, в которой физ доступ невозможен. Зато там есть аппаратные watchdog'и.

Стоит добавить, что если в

Стоит добавить, что если в иксах не работает ввод или они полностью зависли, то для переключения в виртуальную консоль потребуется несколько раз нажать Alt+SysRQ+R перед Ctrl+Alt+Fn.
И ещё, иногда ядро так подвисает, что работает только Reboot, даже на Shutdown ядро не реагирует.

Локальный оверлей растёт

.

mittorn написал(а):
Стоит добавить, что если в иксах не работает ввод или они полностью зависли, то для переключения в виртуальную консоль потребуется несколько раз нажать Alt+SysRQ+R перед Ctrl+Alt+Fn.
И ещё, иногда ядро так подвисает, что работает только Reboot, даже на Shutdown ядро не реагирует.

А вот с этого момента (отсутствие видимого эффекта на команду перехвата управления клавиатурой) я бы просил поподробнее.

:wq
--
Live free or die

Нажимаем Alt+SysRQ+R

Нажимаем Alt+SysRQ+R несколько раз (чтобы наверняка), потом Alt+SysRQ+F1. Если иксы не совсем зависли, появится консоль. Если консоль не видно, но система работает (Num lock переключает светодиод), можно вслепую набирать комманды в консоли, чтобы прибить иксы, сохранить данные и перезагрузить систему.

Локальный оверлей растёт

После того, как наведывается

После того, как наведывается oom-killer, эффекты бывают незаметными. Более того, мои немногочисленные сбои на десктопах все без икслючения не давали «видимых» эффектов при нажатии sysrq. Только чутье, только индикатор активности ЖД :D

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".