Что делать если линукс завис
Перейти к содержимому

Что делать если линукс завис

  • автор:

Что делать при зависании программ в Linux?

Ни одна современная операционная система (ОС), какой бы совершенной она ни была, не избавлена от вероятности зависаний и/или сбоев. Однако, какими бы ни были зависания и как бы часто они не происходили, всегда следует уметь выходить из подобных ситуаций с наименьшими потерями и ущербом для системы. О том, как правильно это делать в системах Linux. Какие вообще бывают ситуации, связанные с зависанием процессов или самой системы, будет изложено в данной статье.

Почему зависают программы и приложения?

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

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

Аппаратная составляющая также оказывает существенное влияние на работу ОС. Например достаточный объём оперативной памяти, стабильные частоты, на которых она работает, высокоскоростная дисковая подсистема. Всё это является важным фактором, существенно снижающим вероятность зависаний.

Системы на основе Linux заслуженно и неоспоримо считаются наиболее устойчивыми к различного рода сбойным ситуациям. Ядро этих систем действительно, работает очень стабильно и способно «переваривать» нагрузки в круглосуточном режиме на протяжение очень длительного времени. Системы Windows такими показателями похвастаться не могут. Именно поэтому, управление самыми высоконагруженными серверами, где критически важна надёжная работа системы. Доверяют именно Unix/Linux.

Но, как бы ни была надёжна Linux, сбои и зависания происходят и в этой ОС. В подавляющем большинстве случаев они связаны либо с устаревшей, маломощной аппаратной составляющей, либо с нестабильным ПО. В последнем случае это касается по большей части настольных компьютеров обычный пользователей. Где используются различные графические оболочки. Что и говорить, графическая подсистема — одна из наиболее уязвимых для сбоев в ОС Linux.

Завершение зависших приложений в командной оболочке

Прежде всего необходимо знать и понимать, каким образом идентифицировать зависший процесс. Ну а дальше попытаться его завершить принудительно.
Каждому процессу в системе соответствует свой уникальный идентификатор (PID). При помощи которого система им управляет, в частности может завершить. Самым простым способом узнать PID процесса является команда pidof:

В данном случае в качестве аргумента указывается имя процесса. Для примера используется утилита psensor. Считывающая показания, предоставляемые различными провайдерами для системных датчиков: lm-sensors, hddtemp, udisks2 и т. д. Если, к примеру, замечено, что psensor не обновляет показания датчиков, т. е. предполагается, что эта утилита зависла. То завершить её можно командой kill, передав ей соответствующий PID:

Эта команда предназначена для отправки сигналов управления процессам. По-умолчанию завершает процесс. Для завершения процессов по их имени существует команда killall:

Однако, использование kill по идентификаторам процессов более корректно. К тому же команда kill более предпочтительна для крепко зависших процессов. И обладает более гибкими возможностями.

Вообще в таких случаях может быть проблематично использовать или запустить командную консоль. Поскольку она также может зависнуть. Тогда можно попытаться переключиться на параллельный сеанс комбинацией клавиш <Ctrl+Alt+FN>. Где N – номер функциональных клавиш от 1 до 12, например F1, F2, . . . F12. И уже оттуда продолжить работу с процессами.

Зависание графической оболочки в Linux

Как уже было отмечено выше, если в системе установлена и работает какая-либо из графических оболочек (GNOME, KDE, Xfce и т. д.), то это лишний повод увидеть перед собой зависшее окно какого-либо приложения, либо даже целиком некликабельный рабочий стол. В таком случае удобно воспользоваться графическим менеджером процессов и управлять ими визуально. Используя элементы интерфейса и контекстное меню процесса.

Но бывает также и так, когда рабочий стол не реагирует ни на клики мыши, ни на привязанные к нему клавиатурные комбинации. В этом случае остаётся задействовать виртуальные терминалы. Переключившись на один из них, как это указано в предыдущей главе по нажатию сочетаний клавиш <Ctrl+Alt+FN>. Стоит отметить, что при переключении на такой терминал необходимо сначала авторизоваться в системе через него. После этого можно попытаться перезапустить графическую оболочку и/или X-сервер, например для Ubuntu:

Здесь lightdm или ssdm зависит от того, какая графическая оболочка используется. В последних версиях дистрибутивов Ubuntu в основном используется композитный менеджер ssdm.

Нехватка памяти и полное зависание системы

В некоторых случаях зависание процесса может быть вызвано нехваткой памяти. Особенно когда сам процесс потребляет её слишком много, т. е. Как говорят, «сильно течёт». Иногда это не очевидно, если такой процесс выполняется в фоне, а пользователь непосредственно с ним не работает. Такие случаи выявляются по первичным признакам в виде общей «заторможенности» всей системы. Когда зависший процесс отобрал большую часть ресурса памяти. В данном случае нужно выявить такой процесс, воспользовавшись командой ps. И отсортировав все процессы по количеству используемой памяти:

Будет выведена таблица, среди столбцов которой есть столбец «%MEM», указывающий количество памяти в процентном соотношении от доступной в системе и используемой соответствующим процессом, запущенным командой, указанной в столбце «COMMAND».
К примеру, если это веб-браузер Firefox, то у него может быть много связанных с ним процессов:

Их можно разом завершить:

Но может и случиться так, что даже Linux-система может зависнуть наглухо, не реагируя ни на что. В таких случаях, как правило, само ядро продолжает работать и ему можно отдавать команды, в том числе и через клавиатуру. Таким образом, можно попытаться более-менее корректно, с наименьшими потерями выполнить ручную поэтапную перезагрузку, передавая ядру соответствующие команды через клавиатурные сочетания. Эти команды следует отдавать, нажимая следующие клавиши через каждые 3-4 секунды, при этом удерживая сочетание клавиш :

  1. R – возврат управления клавиатурой непосредственно ядру.
  2. E – отправка сигнала SigTerm всем запущенным процессам.
  3. I — отправка сигнала SigKill всем запущенным процессам.
  4. U – перемонтирование всех файловых систем в режиме «только чтение».
  5. S – сохранение всех актуальных буферов и временных данных файловых систем на диск.
  6. B – собственно, перезагрузка.

На этапах 2 и 3 стоит объективно оценивать время работы команды. Если процессов запущенно много, то и времени на их завершение и уничтожение может также потребоваться несколько больше, чем 3-4 секунды.

Заключение

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

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

Что делать если зависла 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:

gedit2

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

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

gedit3

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

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

strings core.1493 | grep ‘my text’

gedit4

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

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

xkill

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

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

gedit6

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

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

Зависла графическая оболочка в 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), вводите логин и пароль. Причем будьте готовы к тому, что система будет работать очень медленно.

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

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

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

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

Если вы не хотите ждать и нет возможности перейти в режим терминала, можно попросить ядро завершить все процессы в текущем сеансе терминала сочинением клавиш 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 секунд зажать кнопку выключения.

Не хватает энергии

Уже не первый раз сталкиваюсь с проблемой, что компьютеру не хватает энергии. Во время работы мышь и клавиатура неожиданно перестают работать. Складывается впечатление, что компьютер полностью завис, однако это не так. В данном случае, материнской плате не хватает тока, чтобы дать полноценное питание для мыши и клавиатуры. Убедится что у вас именно эта проблема можно отключив клавиатуру от компьютера, а мышь переставив в другой разъем. Если заработало — проблема здесь. Решить можно заменив мышь и клавиатуру на PS/2 или на беспроводный вариант. Также можно попытаться заменить блок питания на более мощный.

Выводы

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

Что делать, когда Linux зависает?

Когда я только переходил на Linux, то много читал о том, что Linux невозможно повесить, «это тебе не винда», и что в нем дофига способов обойтись без кнопки перезагрузки на системнике. Раньше мне это было как-то до фонаря, но в последнее время из-за глюков VLC в ubuntu постоянно были зависания, когда ставил фильм на паузу дольше минуты. Не помогало ничего, никакие советы, никакие комбинации клавиш и т.д. Только перезагрузка с системника.

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

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

Система

В этой статье мы поговорим о том, что делать если зависла Ubuntu или Linux Mint. Разберем несколько самых удобных, понятных и быстрых вариантов. Если у вас возникнут какие-то вопросы по этой теме, можете написать о них в форме комментариев.

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

Также рекомендуем ознакомиться с предыдущими статьями на нашем сайте, например мы уже рассказывали о том, как майнить Эфириум на Ubuntu.

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

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

Когда одна программа перестает работать

Когда окно программы перестает отвечать на запросы, вы можете остановить его, нажав кнопку X-shaped Close в левом верхнем углу окна. Это, как правило, приводит к диалогу, в котором говорится, что программа не отвечает (но вы уже это и так знаете) и предоставляет вам возможность закрыть программу или продолжать ждать ответа.

Иногда это не работает должным образом. Если вы не можете закрыть окно обычными способами, вы можете нажать Alt + F2, введите xkill и нажмите Enter. Затем ваш курсор мыши превратится в X. Наведите курсор на нужное окно и щелкните левой кнопкой мыши, чтобы закрыть это окно. Правый щелчок отменит команду и вернет вашу мышь в нормальное состояние.

Если ваша программа работает с терминалом, с другой стороны, вы можете остановить ее с помощью Ctrl + C. Если нет, найдите имя и идентификатор процесса своей команды и сообщите программе как можно скорее, чтобы завершить [идентификатор процесса]. Он отправляет сигнал SIGTERM по умолчанию (15). Если все остальное не удается, в качестве последнего средства отправьте SIGKILL (9): kill -9 [идентификатор процесса здесь]. Обратите внимание, что вы должны использовать SIGKILL только в крайнем случае, потому что процесс будет немедленно прекращен ядром без возможности очистки. Он даже не получает сигнал — он просто закрывается.

(Закрытие процесса с помощью kill -9 allways работает, если у вас есть разрешение на убийство. В некоторых особых случаях процесс по-прежнему отображается в ps или top (как «зомби») — в этом случае программа была свернута, но процесс запись в таблице сохраняется, потому что это необходимо позже.)

Когда мышь перестает работать:

Если клавиатура все еще работает, нажмите Alt + F2 и запустите gnome-terminal (или, если они не запускаются, нажмите Alt + Ctrl + F1 и войдите в систему с вашим именем пользователя и паролем). Оттуда вы можете устранить неполадки. Здесь я не собираюсь заниматься поиском и устранением неполадок с мышью, поскольку я не исследовал его. Если вы просто хотите попробовать перезапустить графический интерфейс, запустите перезапуск sudo service lightdm. Это должно привести к закрытию GUI, который затем попытается перезагрузится, возвращая вас на экран входа в систему.

Давайте перейдем к еще одному способу, что делать если зависла Ubuntu.

Когда все, клавиши и мышь и все перестают работать

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

Надеемся, мы помогли вам в решении ситуации о том, что делать если зависла Ubuntu, Elementary OS и остальные дистрибутивы.

Как вы заметили, есть много способов по решению этого вопроса. Сначала лучше выбирать самые простые, так как Ubuntu может зависнуть в случае загруженной оперативной памяти. Для этого нужно просто свернуть самый прожорливый из программ процесс.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *