Поиск по сайту:
Хромой, бегущий по дороге, опережает того, кто бежит без дороги (Ф. Бэкон).

Замороженная система Linux? Вот 3 способа справиться с этим

29.01.2019
Замороженная система Linux? Вот 3 способа справиться с этим

Вкратце: эта статья научит вас нескольким приемам, чтобы попытаться спасти или перезагрузить не отвечающую систему Linux.

Известно, что Linux очень стабилен, но даже самая стабильная система может столкнуться с ситуациями, которые приводят к тому, что она перестает отвечать на запросы. Затем возникает ужасное чувство, когда вы нажимаете и держите «Power». В Linux есть несколько хитростей, которые можно попробовать в таком случае. На данный момент мы не стремимся сохранить несохраненную работу. Мы хотим найти способ избежать перезагрузку системы или, по крайней мере, обеспечьте максимально возможную перезагрузку, чтобы избежать повреждения.

Для целей этой статьи Linux можно рассматривать как набор из двух стеков: стек ядра и пользовательский стек. Где-то внутри пользовательского стека у вас работают программы. Скорее всего, X-сервер, менеджер окон и некоторые программы. Вы можете представить этот список программ, включая X-сервер, в виде другого стека внутри пользовательского стека. Эта концепция поможет новому пользователю Linux понять некоторые задачи, которые мы будем выполнять позже.

 

1. Убить не отвечающую программу с помощью xkill

Если вы используете рабочий стол Linux, вашим первым шагом должна быть попытка использовать команду менеджера окон, команда (alt + f2 в Ubuntu). Если вам повезет, он появится раньше, чем позже.

Тогда вы можете выполнить Xkill и наведите курсор на не существующее окно и щелкните по нему.

Xkill работает быстрее, чем традиционный значок X или щелчок правой кнопкой мыши по окну на панели задач и нажатие кнопки «Закрыть». Команда Xkill убивает мгновенно без вопросов.

 

2. Восстановите замороженную систему Linux с виртуальными консолями (TTY)

Иногда вам не повезет, система может показаться полностью мертвой.

Это может быть просто иллюзией. Помните стек программ внутри пользовательского стека? Давайте поработаем с этим изображением немного.

Хотя может показаться, что корнем пользовательского стека будет X. Это не так.

X Window System работает на виртуальной консоли (VC), также называемой TTY. Они представлены в файловой системе как /dev/ttyX. Linux имеет несколько VC для вас. Попытка получить доступ к другому может вернуть вам контроль.

Вы можете запросить другой VC, нажав CTRL + ALT + F {1,6} в среде графического интерфейса или ALT + F {1,6} в другом VC. Вышеупомянутое нажатие клавиши дает вам доступ к VC 1-6. Графический интерфейс работает на VC 7+.

При работе с нестабильной системой даже запрос на смену VC может занять некоторое время, поэтому будьте немного терпеливы.

Если ваша попытка изменить виртуальную консоль будет успешной, вам будет предложено ввести имя пользователя и пароль. После этого у вас будет консоль в текстовом режиме. Ваша система должна восстановить некоторую стабильность здесь, это по частям, потому что виртуальная консоль, на которой работает X и все остальное, больше не является приоритетом.

После того, как вы вошли в систему, у вас есть несколько вариантов.

  • Вы можете попытаться убить несуществующую программу с помощью команд kill или killall.
  • Вы можете убить оконный менеджер, X-сервер или менеджер входа в систему. Это убьет все дочерние процессы, и, если все пойдет хорошо, ваш менеджер входа в систему перезапустится, представив вам графический экран входа в систему.

 

3. Когда все остальное терпит неудачу, говорите с Ядром, используя SysReq

Иногда даже переключение на TTY не работает. Вся система мертва. Не сдавайтесь еще раз, скорее всего, иллюзия. В Linux есть еще одна особенность для подобных ситуаций.

Если скомпилировано в ядре и включено в файл, Linux предоставляет вам средства для отправки предустановленных запросов непосредственно в ядро. Это полезно в ситуации, когда весь пользовательский стек мертв. Он известен как магический ключ magic SysRq. Скомпилированный и включенный по умолчанию в большинстве дистрибутивов, только Kernel Panic должен быть в состоянии предотвратить это.

Чтобы убедиться, что опция была установлена во время компиляции ядра, вы можете попытаться найти файл конфигурации вашего текущего ядра в /boot. Ищите опцию CONFIG_MAGIC_SYSRQ. Как упоминалось ранее, он компилируется и включается в большинстве дистрибутивов. Чтобы подтвердить, что он включен, выполните следующее:

sysctl kernel.sysrq

 

В старых системах у вас было 2 варианта: 0 и 1. Он был либо выключен, либо включен. На более новых есть более точный контроль над тем, какие команды включены.

Любое значение выше 1 означает, что некоторые команды включены.

Чтобы временно установить другое значение, выполните следующую команду:

sudo sysctl -w kernel.sysrq=value

 

Чтобы навсегда изменить это значение, отредактируйте файл /etc/sysctl.conf . Найдите kernel.sysrq и установите желаемое значение.

Замороженная система Linux? Вот 3 способа справиться с этим

 

Самый простой способ проверить, работает ли он, — попробовать. Мы также рекомендуем тестировать и изучать набор нажатий клавиш, пока система стабильна. Когда вы выполняете вызов SysRq, ядро попытается ответить. Этот ответ можно увидеть, только если вы находитесь в виртуальной консоли с 1 по 6. Если фокус не может быть перемещен от X, вы не увидите ответы. Это не значит, что это не работает.

Есть множество команд, которые можно отправить. Полный список можно посмотреть здесь . Мы рекомендуем запомнить следующее:

Alt + SysRq + rВыводит клавиатуру из необработанного режима, отнимая управление у X
Alt + SysRq + eПосылайте SigTerm всем процессам, давая им шанс выйти изящно
Alt + SysRq + iОтправить SigKill на весь процесс
Alt + SysRq + kУбить весь процесс в текущей виртуальной консоли
Alt + SysRq + sСинхронизировать все смонтированные файловые системы, сбрасывая все данные на диск
Alt + SysRq + uПеремонтировать все файловые системы только для чтения
Alt + SysRq + bПерезагрузка системы мгновенно, не синхронизируется и не отключается
Alt + SysRq + oСистема отключения

Этот короткий список команд дает вам новый мощный инструмент для работы с нестабильной системой. При отправке запроса, если вы не можете увидеть ответы ядра, дайте несколько секунд между командами. Обратите внимание на свет жесткого диска при запросе работы жесткого диска.

Есть 2 последовательности, которые стоит запомнить.

Alt + SysRq + r e k

 

Эта последовательность хороша для перезапуска не отвечающего X-сервера. Сначала вы выводите клавиатуру из необработанного режима с помощью Alt + SysRq + r. Затем вы запрашиваете отправку SIGTERM всем процессам с помощью Alt + SysRq + e. X-сервер может перезагрузиться с этим запросом. Если это так, вы спасли свою систему. Если нет, перейдите к третьему запросу, Alt + SysRq + k. Который будет отправлять SIGKILL всем процессам в текущей виртуальной консоли.

Если ваша система по-прежнему не отвечает после указанной выше последовательности, вам следует перейти к следующей последовательности.

Alt + SysRq + r e i s u b

 

Эта последняя команда инициирует аварийную перезагрузку.

  • r : вывести клавиатуру из режима raw
  • e : отправить SIGTERM всем процессам
  • i : отправить SIGKILL на все процессы
  • s : синхронизировать все смонтированные файловые системы
  • u : аварийный перемонтирование только для чтения
  • b : мгновенная перезагрузка системы

Мы надеемся, что вы узнали что-то новое о работе с замороженной системой Linux в этой статье. Пожалуйста, используйте раздел комментариев и поделитесь своими мыслями.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Читайте также

Спасибо!

Теперь редакторы в курсе.