Что делать если зависла Ubuntu

Операционная система Linux намного стабильнее Windows. Но и здесь тоже иногда случаются зависания. Зависнуть может как отдельное приложение, полностью графическая оболочка или вся система. Важно знать, как правильно действовать в таких случаях, когда зависает ubuntu 16.04, чтобы не повредить данные и файловую систему, чтобы выйти из таких ситуаций с минимальными потерями.

В этой инструкции мы рассмотрим возможные причины зависания Ubuntu, что со всем этим делать, а также как попытаться спасти не сохраненные данные. Это, наверное, самый важный момент — выйти из ситуации без потери данных.

Зависла программа Ubuntu

Сама система, ядро или графическая оболочка зависают очень редко. Они уже множество раз протестированы, перепроверены и достаточно стабильны. А вот сторонние программы могут зависать довольно-таки часто, даже ни с того ни с сего.

Эти зависания не опасны для системы и очень просто решаются. В Ubuntu есть несколько графических утилит для завершения зависших приложений. Их мы рассмотрим чуть ниже. Но очень жаль несохраненных данных, которые остались, когда зависла программа Ubuntu. Если вы пользуетесь крупными редакторами, такими как Libreoffice или WPS office, то, скорее всего, редактируемый текст автоматически сохранился. Но в браузере и простых редакторах ситуация не такая безоблачная. Но даже те данные можно попытаться спасти, хотя работает этот способ не всегда.

Предположим, что завис Gedit. Сначала откройте терминал нажатием сочетания клавиш Ctrl+Alt+T. Теперь попробуем узнать PID процесса Gedit с помощью ps:

ps aux | grep gedit

gedit1

Уже на этом этапе можно завершить программу. Но я вам покажу, как спасти редактируемый текст. Мы получим дамп памяти процесса и извлечем оттуда редактируемый текст. Для этого подключитесь к процессу Gedit с помощью отладчика gdb:

gdb -q -p 1493

gedit2

1493 — это PID зависшей программы, который мы узнали в предыдущей команде.

Дальше сохраним дамп памяти, выполнив в консоли Gdb:

(gdb) generate-core-file

gedit3

Вот и все, отключаемся от процесса

(gdb) detach

Для выхода с отладчика нажмите q. Теперь у нас есть все данные сохраненные в памяти нашего приложения, и мы можем легко извлечь нужную информацию:

strings core.1493 | grep 'my text'

gedit4

С английским текстом работает на ура.

Самый простой способ закрыть зависшее приложение в Ubuntu — это Xkill. Нажмите Alt+F2 и наберите Xkill и нажмите Enter:

xkill

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

Кроме того, в Ubuntu есть аналог диспетчера задач Windows — системный монитор. Чтобы его открыть наберите Системный или System в поиске Dash. Здесь отображаются все запущенные приложения, и любое из них можно завершить через контекстное меню, если зависла программа в Ubuntu, вы можете ее закрыть:

gedit6

Также закрыть зависшее приложение ubuntu можно из терминала, например, с помощью команды kill:

kill 1493

1493 — это PID. Также можно не использовать PID а сразу завершить программу по имени:

killall gedit

Или:

pkill gedit

 Зависла графическая оболочка в Ubuntu

С зависанием приложений разобрались. Это было не очень страшно. Но что делать, если графическая оболочка Ubuntu зависла намертво, и вы не можете ни запустить системный монитор, ни XKill? Это может случиться по разным причинам, например, из-за неправильных драйверов или ошибке в системных программах. Но Linux тем отличается от Windows, что здесь кроме графической оболочки есть еще и режим терминала. Графическая оболочка зависла, но система все еще работает. Поэтому мы можем все исправить.

Сначала можно просто попытаться перезагрузить X сервер. Для этого используется специальная комбинация клавиш — Ctrl+Alt+Backspace.

Далее, если не помогло, переключаемся в один из терминалов. Всего в Linux по умолчанию создается 12 терминалов входа. И доступны они по сочетанию клавиш Ctrl+Alt+Fцифра.

Графический сервер, как правило, размещается по Ctrl+Alt+F7. Переключаемся в первый терминал Ctrl+Alt+F1, вводим там логин и пароль, затем перезагружаем графический сервер командой:

sudo service lightdm restart

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

Не хватает памяти

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

Если вы еще можете переключиться в режим терминала, переключайтесь (Ctrl+Alt+F1), вводите логин и пароль. Причем будьте готовы к тому, что система будет работать очень медленно.

Отсортировать процессы по потреблению памяти можно командой:

ps aux --sort=%mem

Дальше остается завершить виновника одной из вышеописанных команд, например, pkill:

pkill virtualbox

Посмотреть количество свободной памяти можно командой:

free -h

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

Если вы не хотите ждать и нет возможности перейти в режим терминала, можно попросить ядро завершить все процессы в текущем сеансе терминала сочинением клавиш Alt+PrintScreen+K. Завершит все запущенные вами программы в текущей терминальной сессии, в том числе графическую оболочку и ту программу, что использует много оперативной памяти.

Ubuntu зависла полностью

Хорошо, а что же делать, если Ubuntu зависла намертво, полностью? Если система уже ни на что не реагирует, но ядро, скорее всего, работает то можно попытаться выполнить безопасную перезагрузку. Ядро поддерживает несколько сочетаний клавиш, которыми можно ему напрямую отдавать команды.

Нажмите и удерживайте клавиши Alt+PrintScreen, и последовательно с интервалом 2-3 секунды нажимайте:

R E I S U B

  • R — вернуть ядру управление над клавиатурой
  • E — отправить сигнал SigTerm всем процессам
  • I — отправить сигнал SigKill всем процессам
  • U — Перемонтировать все файловые системы в режим только для чтения
  • S — Сохранить все буфера файловых систем на жесткий диск
  • B — Перезагрузить.

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

Если же ubuntu зависает намертво и даже не работает последний метод, остается нажать кнопку Reset или на 6 секунд зажать кнопку выключения.

Выводы

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

Оцените статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (9 оценок, среднее: 4,56 из 5)
Загрузка...

28 комментариев

  1. Дмитрий Февраль 8, 2016 Ответить
  2. Chips Февраль 8, 2016 Ответить
    • admin Февраль 8, 2016 Ответить
    • coolwerwer Февраль 8, 2016 Ответить
    • channel Март 24, 2016 Ответить
  3. Джо Неуловимый Февраль 8, 2016 Ответить
  4. Александр Попов Февраль 8, 2016 Ответить
    • answIT Февраль 18, 2016 Ответить
  5. Александр Попов Февраль 8, 2016 Ответить
    • admin Февраль 8, 2016 Ответить
  6. Клава Февраль 18, 2016 Ответить
    • admin Февраль 18, 2016 Ответить
  7. answIT Февраль 18, 2016 Ответить
  8. Игорь Август 5, 2016 Ответить
  9. Лён Август 25, 2016 Ответить
  10. Анд Сентябрь 2, 2016 Ответить
  11. Alex Январь 19, 2017 Ответить
  12. Сергей Сентябрь 18, 2017 Ответить
  13. sergrey Сентябрь 30, 2017 Ответить
  14. Vladislav Октябрь 1, 2017 Ответить
  15. Валерий Январь 31, 2018 Ответить
  16. zeleniy Март 16, 2018 Ответить
    • Владимир Май 17, 2018 Ответить
  17. Рома Апрель 22, 2018 Ответить
  18. Виктор Май 25, 2018 Ответить

Ответить