Как определить зависший процесс linux

Работа с процессами в Linux

Список процессов

Вывести на экран список текущих процессов, запущенных пользователем, можно командой:

Чтобы посмотреть список всех процессов с дополнительной информацией, вводим:

Мы увидим, примерно, следующее:

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 661 0.0 0.0 4072 8 tty1 Ss+ Jul03 0:00 /sbin/mingetty
root 662 0.0 0.0 4072 8 tty2 Ss+ Jul03 0:00 /sbin/mingetty
root 16355 0.0 0.0 171636 3308 pts/0 S 15:46 0:00 sudo su
root 16366 0.0 0.0 140896 1556 pts/0 S 15:46 0:00 su
root 16368 0.0 0.0 108316 1944 pts/0 S 15:46 0:00 bash
root 18830 0.0 0.0 110244 1172 pts/0 R+ 16:20 0:00 ps u

  • USER — учетная запись пользователя, от которой запущен процесс.
  • PID — идентификатор процесса.
  • %CPU — потребление процессорного времени в процентном эквиваленте.
  • %MEM — использование памяти в процентах.
  • VSZ — Virtual Set Size. Виртуальный размер процесса (в килобайтах).
  • RSS — Resident Set Size. Размер резидентного набора (количество 1K-страниц в памяти).
  • TTY — терминал, из под которого был запущен процесс.
  • STAT — текущее состояние процесса. Могут принимать значения:
    1. R — выполнимый процесс;
    2. S — спящий;
    3. D — в состоянии подкачки на диске;
    4. T — остановлен;
    5. Z — зомби.
    6. W — не имеет резидентных страниц;
    7. Дмитрий Моск — IT-специалист.
      Настройка серверов, компьютерная помощь.

Как управлять процессами в операционной системе Linux

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Но бывает также и так, когда рабочий стол не реагирует ни на клики мыши, ни на привязанные к нему клавиатурные комбинации. В этом случае остаётся задействовать виртуальные терминалы. Переключившись на один из них, как это указано в предыдущей главе по нажатию сочетаний клавиш . Стоит отметить, что при переключении на такой терминал необходимо сначала авторизоваться в системе через него. После этого можно попытаться перезапустить графическую оболочку и/или 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.

Источник

как узнать из консоли какое приложение зависло?

Возился с анимацией в libreoffice impress, внезапно все зависло, не реагирует ни на что, мышь только исправно бегает. Делаю Ctrl Alt F5. Запускаю top и убиваю soffice.bin, но не помогает. Встает вопрос — что же тогда зависло? Как в консоли узнать — что зависло? (Система Linux Mint 17.3).

Зачастую это тот, кто жрёт вхолостую процессор

Ну в том же top сортировку по процессору или памяти делай.

Если видишь что памяти мало свободной и инетерфейс совсем не отвечает, можешь нажать Alt-SysRq-f чтобы убить самый памятежрущий процесс.

Точно, как же я сразу не догадался. В итоге перегрузил комп.

А что за зверь Alt-SysRq-f?

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

Мне помогало когда процесс жрал столько памяти что нельзя было нормально его прибить.

Понятно что сочетание клавиш, но каких? Расшифруйте пожалуйста. Иногда Mathematica жрет так что сделать ничего нельзя.

А почему Octave не используешь? Есть же свободные математические пакеты.

Ну как каких, нажать одновременно кнопки Alt, SysRq и F же. Если не можешь найти SysRq, то поищи PrintScreen — это та же кнопка, просто у неё две функции.

Ага, понятно. Просто первый раз слышу про SysRq. Octave это замена MatLab, а это численно. Для символики ничего лучше Mathematica нет. А мне нужна символика.

Ну насчёт этого не знаю. R вроде численный?

Maxima символьная, нет? А Sage?

Сам не пользуюсь, мне для моих нужд GNU bc хватает вполне. Кстати пробовал его?

Иногда Mathematica жрет так что сделать ничего нельзя.

Можно выставить лимиты процессора и памяти для конкретного софта. Решается с помощью cgroups https://wiki.archlinux.org/index.php/cgroups
Там в статье есть пример конфига для Matlab.

Я пробовал многие символьные пакеты (стараюсь следить за развитием), а с Mathematica работаю с версии 5 (сейчас 11). По возможностям с ней сравним только Maple. Maxima прекрасно подходит для учебных целей. Sage и символьный питон SymPy сильно уступают Mathematica. Есть еще Matics, но тоже пока (навечно?) слаб. Тут все просто — в Mathematica вложены большие деньги, поэтому и сделано качественно и очень много возможностей. Там работают сильные математики, поэтому и алгоритмы качественные. Опенсорс, к сожалению, не способен сделать такого уровня. Все стоит денег :(. GNU bc не слышал. Спасибо, гляну. В Mathematica один минус, Вольфрам все сует в один пакет, модули были бы лучше. Сейчас пакет уже приближается к 3Гб, и в нем много чего мне совсем не нужного.

Я пробовал многие символьные пакеты

А какие-то из тех что по ссылке не пробовал?

А это же просто питоновый уй, не? Но он в том числе и для «Максимы», да.

А зачем? Все равно не соперники Mathematica или Maple в области символьных вычислений. После многих попыток понял, что бессмысленно тратить время, мои нужды перекрывает с лихвой Mathematica. Был еще такой reduce в свое время. Как пишет Жванецкий — «Жизнь коротка и надо успеть». Хорошо развивается то, во что вкладывают. БАК усилиями опенсорса не сделать :).

Все верно, но о чем собственно речь?

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

А что у вас есть помимо мыши? Клавиатура?

Встает вопрос — что же тогда зависло?

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

Как в консоли узнать — что зависло?

Хороший вопрос, присоединяюсь.

А освободиться от захвата можно нажав XF86Ungrab. В том числе программно из телетайпа.

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

БАК усилиями опенсорса не сделать :).
усилиями опенсорса

Зачастую это тот, кто жрёт вхолостую процессор

А не обязательно. Наверное в половине случаев зависшее приложение висит себе с ноликом в СPU%. Вообще понятие «зависшее приложение» почти не формализуемо

В Maxima имеются серьёзные ограничения, с которыми даже студент при выполнении ДЗ может столкнуться. Но если крупных символьных вычислений нет, то Maxima годится (например посчитать интеграл). Octave — это вообще из другой области (это численная математика).

Большой Адронный Коллайдер

У меня беспроводная мышь и клава, два в одном. Мышь по экрану бегает и клава работает, поскольку я жму Ctrl Alt F5 и экран переключается и я могу что либо сделать. В этом и вопрос какой процесс завис, и что можно и нужно убить. Я не обратил внимания, но сейчас вспоминаю, что вверху top были процессы занявшие много озу. Поясните пожалуйста, что такое XF86Ungrab? Я не знаю, что это, но видимо полезная комбинация. Да, забыл сказать. Зависание произошло когда я пытался сделать анимацию в libreoffice impress. Хотел чтобы видео запускалось по щелчку мыши. Нашел в гугле какое-то решение и пытался повторить, вот и повторил :). Причем два раза. И поэтому решил отказаться. Вообще я пользуюсь для презентаций latex+beamer, но тут презентация для жены, содержащая много видео (биология). Тут как бы impress лучше.

Лет 10 назад я пытался внедрить в учебный процесс wxmaxima. Она же бесплатная, а для начальства это прям бальзам, платить ведь не надо. Сделали методичку для студентов, но как то не пошло, хотя на мой взгляд для студентов и не сильно серьезных работ самое оно. Кстати литературы по maxima довольно много, но мне лично ее возможностей сильно не хватает. Интерфейс wxmaxima, кстати, почти полностью повторяет идеологию Mathematica, что сильно удобно.

БАК усилиями опенсорса не сделать :).
усилиями опенсорса

Большой Адронный Коллайдер

БАК Большим Адронным Коллайдером не сделать?

Я же, вроде бы, сфокусировался на на том, о чем спрашивал.

У меня беспроводная мышь и клава, два в одном.

Да хоть семь в одном. (Сейчас очень распространено, кстати.)

Мышь по экрану бегает
> и клава работает, поскольку я жму Ctrl Alt F5 и экран переключается и я могу что либо сделать.

Вы это уже говорили.

В этом и вопрос какой процесс завис, и что можно и нужно убить.

Хороший вопрос, присоединяюсь к нему.

Я не обратил внимания, но сейчас вспоминаю, что вверху top были процессы занявшие много озу.

А в какие времена было иначе? И 640 кб не хватало, и 16 Гб уже мало.

Поясните пожалуйста, что такое XF86Ungrab?

Клавиша в Иксах. По-умолчанию в поставках ГНУ ее сейчас никуда не назначают, поскольку именно захват ввода используется классическими блокировщиками, а значит, имея такую клавишу, вы можете смело посылать их с ихними требованиями пароля куда подальше.

Поэтому остается нажимать ее программно, переключившись на другой телетайп:

Источник

Читайте также:  Классическое меню пуск для windows 10 startisback
Оцените статью