что делать если завис линукс
Линукс завис? Что делать если линукс зависает
Итак, что мы можем сделать в том случае если завис GNOME, KDE или Unity?
Если у вас Unity то для начала попробуйте на клавиатуре нажать правый Alt + PrintScreen + K. Это сочетание выполняет перезапуск графического движка lightdm. Если поможет, тогда перед вами откроется экран авторизации.
Примечание. Не во всех дистрибутивах открытие новой tty сессии выполняется по Ctrl + Alt + F1. Например в Fedora это будет Ctrl + Alt + F2. Если Ctrl + Alt + F1 не сработал, пробуйте другие клавиши F. Или это может быть сочетание клавиш Ctrl + Alt + Backspace (один или два раза).
Итак вы в терминале. Что можно предпринять для возвращения в GUI?
Можно выполнить просто перезагрузку графического движка:
После этого автоматически должен стартовать новый процесс сервера xorg и в свою очередь запустить движок GUI. Если автоматического старта не произошло можно запустить сервер вручную:
Как вернуться в GUI сессию если вы находитесь в консольной сессии?
В Ubuntu Unity и KDE GUI сессия по умолчанию открывается на tty7, то есть переход туда возможен по Ctrl + Alt + F7. В GNOME 2 и 3 или в другом дистрибутиве GUI сессия может быть открыта на другом tty. Узнать какой tty используется для GUI сессии можно выполнив команду:
в одной из колонок будет значение вида tty7. Какая цифра будет, такую клавишу F нужно нажимать.
Остается открытым вопрос почему Linux зависает, точнее почему GNOME или KDE зависает, но это тема для отдельной статьи. Разобраться в причинах почему GNOME завис или KDE завис может быть совсем непросто и если эта проблема возникает редко, проще ее игнорировать, чем тратить время на поиск причины.
Даже небольшая сумма может помочь написанию новых статей 🙂
Или поделитесь ссылкой на эту статью со своими друзьями.
Что делать при зависании программ в Linux?
Ни одна современная операционная система (ОС), какой бы совершенной она ни была, не избавлена от вероятности зависаний и/или сбоев. Однако, какими бы ни были зависания и как бы часто они не происходили, всегда следует уметь выходить из подобных ситуаций с наименьшими потерями и ущербом для системы. О том, как правильно это делать в системах Linux. Какие вообще бывают ситуации, связанные с зависанием процессов или самой системы, будет изложено в данной статье.
Почему зависают программы и приложения?
В первую очередь это происходит из-за действий пользователей. Система не может предусмотреть все без исключения ситуации, которые потенциально могут вызвать сбой или зависание. А действия самого пользователя порой бывают чрезмерно необдуманными.
Некачественное программное обеспечение (ПО), которое не было должным образом протестировано разработчиками. А также ПО сомнительного происхождения также являются частой причиной зависаний.
Аппаратная составляющая также оказывает существенное влияние на работу ОС. Например достаточный объём оперативной памяти, стабильные частоты, на которых она работает, высокоскоростная дисковая подсистема. Всё это является важным фактором, существенно снижающим вероятность зависаний.
Системы на основе Linux заслуженно и неоспоримо считаются наиболее устойчивыми к различного рода сбойным ситуациям. Ядро этих систем действительно, работает очень стабильно и способно «переваривать» нагрузки в круглосуточном режиме на протяжение очень длительного времени. Системы Windows такими показателями похвастаться не могут. Именно поэтому, управление самыми высоконагруженными серверами, где критически важна надёжная работа системы. Доверяют именно Unix/Linux.
Но, как бы ни была надёжна Linux, сбои и зависания происходят и в этой ОС. В подавляющем большинстве случаев они связаны либо с устаревшей, маломощной аппаратной составляющей, либо с нестабильным ПО. В последнем случае это касается по большей части настольных компьютеров обычный пользователей. Где используются различные графические оболочки. Что и говорить, графическая подсистема — одна из наиболее уязвимых для сбоев в ОС Linux.
Завершение зависших приложений в командной оболочке
Прежде всего необходимо знать и понимать, каким образом идентифицировать зависший процесс. Ну а дальше попытаться его завершить принудительно.
Каждому процессу в системе соответствует свой уникальный идентификатор (PID). При помощи которого система им управляет, в частности может завершить. Самым простым способом узнать PID процесса является команда pidof:
В данном случае в качестве аргумента указывается имя процесса. Для примера используется утилита psensor. Считывающая показания, предоставляемые различными провайдерами для системных датчиков: lm-sensors, hddtemp, udisks2 и т. д. Если, к примеру, замечено, что psensor не обновляет показания датчиков, т. е. предполагается, что эта утилита зависла. То завершить её можно командой kill, передав ей соответствующий PID:
Эта команда предназначена для отправки сигналов управления процессам. По-умолчанию завершает процесс. Для завершения процессов по их имени существует команда killall:
Однако, использование kill по идентификаторам процессов более корректно. К тому же команда kill более предпочтительна для крепко зависших процессов. И обладает более гибкими возможностями.
Зависание графической оболочки в Linux
Как уже было отмечено выше, если в системе установлена и работает какая-либо из графических оболочек (GNOME, KDE, Xfce и т. д.), то это лишний повод увидеть перед собой зависшее окно какого-либо приложения, либо даже целиком некликабельный рабочий стол. В таком случае удобно воспользоваться графическим менеджером процессов и управлять ими визуально. Используя элементы интерфейса и контекстное меню процесса.
Здесь lightdm или ssdm зависит от того, какая графическая оболочка используется. В последних версиях дистрибутивов Ubuntu в основном используется композитный менеджер ssdm.
Нехватка памяти и полное зависание системы
В некоторых случаях зависание процесса может быть вызвано нехваткой памяти. Особенно когда сам процесс потребляет её слишком много, т. е. Как говорят, «сильно течёт». Иногда это не очевидно, если такой процесс выполняется в фоне, а пользователь непосредственно с ним не работает. Такие случаи выявляются по первичным признакам в виде общей «заторможенности» всей системы. Когда зависший процесс отобрал большую часть ресурса памяти. В данном случае нужно выявить такой процесс, воспользовавшись командой ps. И отсортировав все процессы по количеству используемой памяти:
Будет выведена таблица, среди столбцов которой есть столбец «%MEM», указывающий количество памяти в процентном соотношении от доступной в системе и используемой соответствующим процессом, запущенным командой, указанной в столбце «COMMAND».
К примеру, если это веб-браузер Firefox, то у него может быть много связанных с ним процессов:
Их можно разом завершить:
Но может и случиться так, что даже Linux-система может зависнуть наглухо, не реагируя ни на что. В таких случаях, как правило, само ядро продолжает работать и ему можно отдавать команды, в том числе и через клавиатуру. Таким образом, можно попытаться более-менее корректно, с наименьшими потерями выполнить ручную поэтапную перезагрузку, передавая ядру соответствующие команды через клавиатурные сочетания. Эти команды следует отдавать, нажимая следующие клавиши через каждые 3-4 секунды, при этом удерживая сочетание клавиш :
На этапах 2 и 3 стоит объективно оценивать время работы команды. Если процессов запущенно много, то и времени на их завершение и уничтожение может также потребоваться несколько больше, чем 3-4 секунды.
Заключение
В заключение, стоит отметить, что хотя в системах Linux далеко не так часто случаются вообще какие-либо зависания. Однако всё же необходимость правильно и быстро вывести систему из нештатного состояния может возникнуть в любой момент. Такими состояниями являются рассмотренные в данной статье как зависания отдельных процессов, так и целых подсистем, например графической. Также был рассмотрен вариант с ручной перезагрузкой системы в случае её полного зависания.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Что делать если зависла Ubuntu
Операционная система Linux намного стабильнее Windows. Но и здесь тоже иногда случаются зависания. Зависнуть может как отдельное приложение, полностью графическая оболочка или вся система. Важно знать, как правильно действовать в таких случаях, когда зависает ubuntu 16.04, чтобы не повредить данные и файловую систему, чтобы выйти из таких ситуаций с минимальными потерями.
Зависла программа Ubuntu
Сама система, ядро или графическая оболочка зависают очень редко. Они уже множество раз протестированы, перепроверены и достаточно стабильны. А вот сторонние программы могут зависать довольно-таки часто, даже ни с того ни с сего.
Эти зависания не опасны для системы и очень просто решаются. В Ubuntu есть несколько графических утилит для завершения зависших приложений. Их мы рассмотрим чуть ниже. Но очень жаль несохраненных данных, которые остались, когда зависла программа Ubuntu. Если вы пользуетесь крупными редакторами, такими как Libreoffice или WPS office, то, скорее всего, редактируемый текст автоматически сохранился. Но в браузере и простых редакторах ситуация не такая безоблачная. Но даже те данные можно попытаться спасти, хотя работает этот способ не всегда.
Предположим, что завис Gedit. Сначала откройте терминал нажатием сочетания клавиш Ctrl+Alt+T. Теперь попробуем узнать PID процесса Gedit с помощью ps:
ps aux | grep gedit
Уже на этом этапе можно завершить программу. Но я вам покажу, как спасти редактируемый текст. Мы получим дамп памяти процесса и извлечем оттуда редактируемый текст. Для этого подключитесь к процессу Gedit с помощью отладчика gdb:
Дальше сохраним дамп памяти, выполнив в консоли Gdb:
Вот и все, отключаемся от процесса
Для выхода с отладчика нажмите q. Теперь у нас есть все данные сохраненные в памяти нашего приложения, и мы можем легко извлечь нужную информацию:
strings core.1493 | grep ‘my text’
С английским текстом работает на ура.
Теперь курсор превратился в крестик и достаточно кликнуть на любом окне, чтобы его закрыть.
Также закрыть зависшее приложение ubuntu можно из терминала, например, с помощью команды kill:
Зависла графическая оболочка в Ubuntu
С зависанием приложений разобрались. Это было не очень страшно. Но что делать, если графическая оболочка Ubuntu зависла намертво, и вы не можете ни запустить системный монитор, ни XKill? Это может случиться по разным причинам, например, из-за неправильных драйверов или ошибке в системных программах. Но Linux тем отличается от Windows, что здесь кроме графической оболочки есть еще и режим терминала. Графическая оболочка зависла, но система все еще работает. Поэтому мы можем все исправить.
Далее, если не помогло, переключаемся в один из терминалов. Всего в Linux по умолчанию создается 12 терминалов входа. И доступны они по сочетанию клавиш Ctrl+Alt+Fцифра.
Графический сервер, как правило, размещается по Ctrl+Alt+F7. Переключаемся в первый терминал Ctrl+Alt+F1, вводим там логин и пароль, затем перезагружаем графический сервер командой:
sudo service lightdm restart
Если в приложениях остались не сохраненные данные, их можно попытаться извлечь описанным выше способом. Но поскольку тут уже зависла Ubuntu, и работать нужно в терминале, все сделать будет немного сложнее хотя бы потому, что вы не сможете копировать команды.
Не хватает памяти
Если вы еще можете переключиться в режим терминала, переключайтесь (Ctrl+Alt+F1), вводите логин и пароль. Причем будьте готовы к тому, что система будет работать очень медленно.
Отсортировать процессы по потреблению памяти можно командой:
Дальше остается завершить виновника одной из вышеописанных команд, например, pkill:
Посмотреть количество свободной памяти можно командой:
В современные ядра встроен механизм мониторинга памяти, таким образом, если памяти недостаточно, ядро смотрит какая программа потребляет больше всего и завершает ее, только в случае, если запущенно большое количество мелких программ этот процесс может занять много времени.
Если вы не хотите ждать и нет возможности перейти в режим терминала, можно попросить ядро завершить все процессы в текущем сеансе терминала сочинением клавиш Alt+PrintScreen+K. Завершит все запущенные вами программы в текущей терминальной сессии, в том числе графическую оболочку и ту программу, что использует много оперативной памяти.
Ubuntu зависла полностью
Хорошо, а что же делать, если Ubuntu зависла намертво, полностью? Если система уже ни на что не реагирует, но ядро, скорее всего, работает то можно попытаться выполнить безопасную перезагрузку. Ядро поддерживает несколько сочетаний клавиш, которыми можно ему напрямую отдавать команды.
Нажмите и удерживайте клавиши Alt+PrintScreen, и последовательно с интервалом 2-3 секунды нажимайте:
R E I S U B
По сути, все эти действия происходят и при обычной перезагрузке. Но здесь мы выполняем их вручную.
Если же ubuntu зависает намертво и даже не работает последний метод, остается нажать кнопку Reset или на 6 секунд зажать кнопку выключения.
Не хватает энергии
Выводы
Теперь мы рассмотрели все что нужно, чтобы привести свою систему в чувство, и вы знаете что делать если зависла Ubuntu и как закрыть зависшее приложение. Если у вас есть другие, более эффективные способы, напишите в комментариях!
Что делать, когда Linux зависает?
ctrl+alt+f2 > логин/пароль > killall vlc.
F3 — теперь на F1 логи, на F2 GUI.
А вот не работает. Это был самый известный способ. Никакие из ctrl-f1-12 не заработают. В обычное время переключается, после зависания уже нет.
Это на каком дистре? У меня в ubuntu gui на f7, в fedora на f1.
А если завис действительно намертво, то есть SysRq, погугли. Лучше использовать в комбинации с crashkernel, чтобы потом проанализировать дамп. SysRq + С
Про SysRq еще в вики читал, ни разу не сработало. Есть идеи почему?
Значит либо что-то с железом (или его совместимостью с Linux), или железо слабое. Изредка зависания могут наблюдаться из-за программных глюков, но в основном на не очень стабильных дистрах.
А так для начала проверь память мемтестом. Особенно если и windows тоже зависает.
Наверное, дело в USB-клавиатурах. Тут бы PS/2 с аппаратной SysRq.
Ага. Спасибо кривым UEFI — некоторые материнки мосле memtest превращаются в кирпич. Скоро железо не для серверов будет вообще невозможно нормально использовать.
Это действительно так, если не допускать переполнения ОЗУ.
Linux Mint 20 зависает намертво!
System: Kernel: 5.4.0-58-generic x86_64 bits: 64 compiler: gcc v: 9.3.0 Desktop: Cinnamon 4.6.7 Distro: Linux Mint 20 Ulyana base: Ubuntu 20.04 focal
Machine: Type: Laptop System: HP product: HP Stream Laptop 14-ax0XX v: Type1ProductConfigId serial: Mobo: HP model: 82BD v: 11.20 serial: UEFI: Insyde v:
Battery: ID-1: BAT0 charge: 10.0 Wh condition: 20.4/20.4 Wh (100%) model: Hewlett-Packard Primary status: Discharging
CPU: Topology: Dual Core model: Intel Celeron N3060 bits: 64 type:
MCP arch: Airmont rev: 4 L2 cache: 1024 KiB flags: lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Speed: 480 MHz min/max: 480/2480 MHz Core speeds (MHz): 1: 480 2: 801
Graphics: Device-1: Intel Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Integrated Graphics vendor: Hewlett-Packard driver: i915 v: kernel bus ID: 00:02.0 Display: x11 server: X.Org 1.20.8 driver: modesetting unloaded: fbdev,vesa resolution: 1366×768
60Hz OpenGL: renderer: Mesa DRI Intel HD Graphics 400 (BSW) v: 4.6 Mesa 21.0.0-devel (git-05ad0f8 2020-12-19 focal-oibaf-ppa) direct render: Yes
Audio: Device-1: Intel Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series High Definition Audio vendor: Hewlett-Packard driver: snd_hda_intel v: kernel bus ID: 00:1b.0 Sound Server: ALSA v: k5.4.0-58-generic
Network: Device-1: Intel Wireless 7265 driver: iwlwifi v: kernel port: 1040 bus ID: 02:00.0 IF: wlo1 state: up mac:
Drives: Local Storage: total: 29.12 GiB used: 12.10 GiB (41.6%) ID-1: /dev/mmcblk0 model: DF4032 size: 29.12 GiB
Partition: ID-1: / size: 18.21 GiB used: 10.11 GiB (55.6%) fs: ext4 dev: /dev/mmcblk0p3 ID-2: /home size: 5.65 GiB used: 1.84 GiB (32.6%) fs: ext4 dev: /dev/mmcblk0p4 ID-3: swap-1 size: 4.19 GiB used: 142.2 MiB (3.3%) fs: swap dev: /dev/mmcblk0p2
Sensors: System Temperatures: cpu: 52.0 C mobo: N/A Fan Speeds (RPM): N/A
Info: Processes: 187 Uptime: 23m Memory: 1.85 GiB used: 1.23 GiB (66.8%) Init: systemd runlevel: 5 Compilers: gcc: 9.3.0 Shell: bash v: 5.0.17 inxi: 3.0.38