Работа с процессами в Linux. Как посмотреть список процессов? Как посмотреть список однотипных процессов?

13.02.2020 на прочтение 7 минут

Слово “процесс” само по себе понятно, но в этой статье рассмотрим этот термин со стороны администрирования серверов и управления процессами в Linux.  Процесс - это набор взаимно последовательных событий/операций для выполнения той или иной задачи касательно работы на сервере. Не важно, просто мы подключаемся к серверу или же запускаем какое-то приложение, для осуществления всех этих процедур отвечают определенные запущенные процессы в системе. 

Чтобы посмотреть какие процессы и кем запущены в текущее время на сервере, можно использовать очень полезную утилиту ps, которая выведет на экран список процессов.

comandpskeya

Где: 

PID (Proccess Identificator) – идентификатор процесса, который дает система для обозначения и различия процессов. Каждый процесс имеет свой уникальный идентификатор. По этому идентификатору Вы можете выполнять команды и находить информацию, которая касается только процесса с этим PID.

TTY – отображает название терминала, к которому подключен указанный процесс.

TIME  – в этом поле указывается процессорное время, затраченное на выполнение процесса.

CMD –  выводится название команды или же сервиса, которые запустили процесс.

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

На своей практике мы часто используем с утилиты ps такие ключи.
Ключ “а” для отображения всех процессов.

pscommand

Ключ “u” фильтр по имени или идентификатору пользователя, который запустил процесс. Если после -u прописать имя пользователя, на экран будут выведены только процессы запущенные от этого пользователя.

ps command u

Ключ “х” предназначен  для отображения процессов, отсоединенных от терминала, то есть, которые не имеют управляющих терминалов (включая демоны).

ps key x

На скриншоте выше можно видеть,  что некоторые процессы указаны в квадратных скобках [ ] – это процессы, которые выполняют  системные задачи и очень важны для ее работоспособности, поэтому не нужно выполнять никаких манипуляций с этими процессами. Все остальные процессы идут как обычные и являются пользовательскими, с ними уже можно работать.  

Коротко пройдемся о том, что мы имеем на выводе в терминале после выполнения команды, для понимания что преподносит той или иной ключ.

Первый столбец USER – указывает пользователя с под которого был запущен процесс.

Дальше идет PID – аналогично этот параметр обозначает идентификатор процесса.

%CPU – затраченное процессорное время на процесс в процентном эквиваленте.

%MEM – затраченная оперативная память на процесс в процентном эквиваленте.

VSZ (Virtual Set Size)  – виртуальный размер процесса в целом.

RSS (Resident Set Size) – размер резидентного набора, размер процесса в текущое время.

TTY  отображает название терминала, к которому подключен указанный процесс.

В колонке STAT  указывается статус процесса. Если кратко, статус определяет состояния процесса в данный момент. Основные статусы процессов:

  • R (Running) – активный запущенный процесс, либо готов к  выполнению.
  • S (Sleeping) – спящий процесс, процесс находится  состоянии ожидания, то есть ожидает какого-то события, сигнала либо же  освобождения нужного ресурса.
  • T – приостановленный процесс или трассируется отладчиком.
  • Z (Zombie) – убитый процесс, которого уже не существует, но соответствующие ему структуры ядра не освобождаются, это часто происходить когда родительский процесс завершился до получения сигнала о завершении от своего  дочернего процесса.
  • D (Direct) находится в состоянии непрерывного ожидания дискового ввода/вывода.

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

  • знак + указывает на приоритетность процесса.
  • знак s указывает, что это ведущий в сеансе процесс.

Соответственно если имеем статус Ss+ - это приоритетный ведущий процесс.

По столбцу START можно узнать время запуска процесса.

TIME  прописано  процессорное время, затраченное на выполнение этого процесса.

И в конце идет графа COMMAND, где указано название команды или же сервиса, которые запустили процесс.

Ключ “f “ – для отображения дерева родительского и дочерних процессов.

ps key f

Ключ “S” – суммирует информацию, такую как использование ЦП, время выполнения, из мёртвых (zombie) дочерних процессов в их родительские.

ps key S

Ключ “r” список процессов, которые находятся в статусе R (runnig,  активные выполняющейся процессы).

ps key r

Для сортировки процессов по нужному параметру как вариант использовать опцию sort, что дает возможность сортировать вывод процессов по любому полю. На примере мы сделали сортировки по индикатору  процесса PID в порядке возрастания.

ps key sort

Если наоборот вы хотите отсортировать в порядке убывания, просто возле параметра сортировки добавьте знак -. Например, ps aux --sort=-%mem.

ps sort command

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

ps grep command

О процессах и о популярных командах top, kill мы также ранее упоминали в этой статье здесь

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

Команда ГиперХост всегда рада помочь своим клиентам решить вопросы касательно работы хостинга и не только. Мы администрируем все сервера наших клиентов 24/7.


Close Screen
Maria Kholodnitska
Статей: 221
Оцените статью:


Спасибо за отзыв
Рейтинг: 4.6 из 5 Голосов: 9