Работа с процессами в Linux. Как посмотреть список процессов? Как посмотреть список однотипных процессов?
Слово “процесс” само по себе понятно, но в этой статье рассмотрим этот термин со стороны администрирования серверов и управления процессами в Linux. Процесс - это набор взаимно последовательных событий/операций для выполнения той или иной задачи касательно работы на сервере. Не важно, просто мы подключаемся к серверу или же запускаем какое-то приложение, для осуществления всех этих процедур отвечают определенные запущенные процессы в системе.
Чтобы посмотреть какие процессы и кем запущены в текущее время на сервере, можно использовать очень полезную утилиту ps, которая выведет на экран список процессов.
Где:
PID (Proccess Identificator) – идентификатор процесса, который дает система для обозначения и различия процессов. Каждый процесс имеет свой уникальный идентификатор. По этому идентификатору Вы можете выполнять команды и находить информацию, которая касается только процесса с этим PID.
TTY – отображает название терминала, к которому подключен указанный процесс.
TIME – в этом поле указывается процессорное время, затраченное на выполнение процесса.
CMD – выводится название команды или же сервиса, которые запустили процесс.
Также утилиту ps используют в связке с различными ключами, для структурирования данных или получения дополнительной информации касаемо процессов.
На своей практике мы часто используем с утилиты ps такие ключи.
Ключ “а” для отображения всех процессов.
Ключ “u” фильтр по имени или идентификатору пользователя, который запустил процесс. Если после -u прописать имя пользователя, на экран будут выведены только процессы запущенные от этого пользователя.
Ключ “х” предназначен для отображения процессов, отсоединенных от терминала, то есть, которые не имеют управляющих терминалов (включая демоны).
На скриншоте выше можно видеть, что некоторые процессы указаны в квадратных скобках [ ] – это процессы, которые выполняют системные задачи и очень важны для ее работоспособности, поэтому не нужно выполнять никаких манипуляций с этими процессами. Все остальные процессы идут как обычные и являются пользовательскими, с ними уже можно работать.
Коротко пройдемся о том, что мы имеем на выводе в терминале после выполнения команды, для понимания что преподносит той или иной ключ.
Первый столбец 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 “ – для отображения дерева родительского и дочерних процессов.
Ключ “S” – суммирует информацию, такую как использование ЦП, время выполнения, из мёртвых (zombie) дочерних процессов в их родительские.
Ключ “r” – список процессов, которые находятся в статусе R (runnig, активные выполняющейся процессы).
Для сортировки процессов по нужному параметру как вариант использовать опцию sort, что дает возможность сортировать вывод процессов по любому полю. На примере мы сделали сортировки по индикатору процесса PID в порядке возрастания.
Если наоборот вы хотите отсортировать в порядке убывания, просто возле параметра сортировки добавьте знак -. Например, ps aux --sort=-%mem.
В системе могут работать разные пользователи и каждый пользователь имеет возможность запускать одни и те же программы, такие процессы называются однотипные. Чтобы посмотреть список однотипных процессов можно использовать опцию grep, после какой добавляем название команды, по которой нужно найти однотипные процессы.
О процессах и о популярных командах top, kill мы также ранее упоминали в этой статье здесь.
Вывод списка процессов представляет общую картину происходящего в системе и дает проследить производительность сервера.
Команда ГиперХост всегда рада помочь своим клиентам решить вопросы касательно работы хостинга и не только. Мы администрируем все сервера наших клиентов 24/7.