DataLife Engine / Команда ps в Linux: Полное руководство по управлению процессами

Команда ps в Linux: Полное руководство по управлению процессами

Утилита ps одна из самых простых и в то же время часто используемых программ для просмотра списка процессов в Linux. Она не поддерживает интерактивный режим, зато имеет множество опций для настройки вывода тех или иных параметров процессов в Linux.

В этой статье мы рассмотрим как пользоваться ps, что с помощью неё можно посмотреть, а также какие основные опции можно использовать.


Содержание статьи

Что такое процесс?

Чтобы понять что отображает команда ps сначала надо разобратся что такое процесс. Процесс Linux - это экземпляр программы, запущенный в памяти. Все процессы можно разделить на обычные и фоновые. Более подробно об этом написано в статье управление процессами Linux. Linux - это многопользовательская система, каждый пользователь может запускать одни и те же программы, и даже один пользователь может захотеть запустить несколько экземпляров одной программы, поэтому ядру нужно как-то идентифицировать такие однотипные процессы. Для этого каждому процессу присваивается PID (Proccess Identificator).

Каждый из процессов может находиться в одном из таких состояний:

А теперь давайте перейдем ближе к практике.

Команда ps в Linux

Сначала рассмотрим общий синтаксис команды, здесь все очень просто:

$ ps опции

$ ps опции | grep параметр

Во втором варианте мы используем утилиту grep для того, чтобы отобрать нужные нам процессы по определенному критерию. Теперь рассмотрим опции утилиты. Они делятся на два типа - те, которые идут с дефисом Unix и те, которые используются без дефиса - BSD. Лучше пользоваться только опциями Unix, но мы рассмотрим и одни и другие. Заметьте, что при использовании опций BSD, вывод утилиты будет организован в BSD стиле.

Опции форматирования:

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

ps

Команда ps в Linux: Полное руководство по управлению процессами

Все процессы, кроме лидеров групп, в том же режиме отображения:

ps -A

Команда ps в Linux: Полное руководство по управлению процессами

Все процессы, включая фоновые и лидеры групп:

ps -d

Команда ps в Linux: Полное руководство по управлению процессами

Чтобы вывести больше информации о процессах используйте опцию -f:

ps -f

Команда ps в Linux: Полное руководство по управлению процессами

При использовании опции -f команда выдает такие колонки:

Например, также можно вывести подробную информацию обо всех процессах:

ps -Af

Команда ps в Linux: Полное руководство по управлению процессами

Больше информации можно получить, использовав опцию -F:

ps -Fe

Команда ps в Linux: Полное руководство по управлению процессами

Эта опция добавляет такие колонки:

Если вы хотите получить еще больше информации, используйте вместо -f опцию -l:

ps -l

Команда ps в Linux: Полное руководство по управлению процессами

Эта опция добавляет отображение таких колонок:

Дальше мы можем отобрать все процессы, запущенные от имени определенного пользователя:

ps -fu root

Команда ps в Linux: Полное руководство по управлению процессами

С помощью опции -H можно отобразить дерево процессов:

ps -fHu root

Команда ps в Linux: Полное руководство по управлению процессами

Если вас интересует информация только об определенном процессе, то вы можете использовать опцию -p и указать PID процесса:

ps -fp 1

Команда ps в Linux: Полное руководство по управлению процессами

Через запятую можно указать несколько PID:

ps -fp 1,2,3

Команда ps в Linux: Полное руководство по управлению процессами

Опция позволяет фильтровать процессы по имени, например, выберем только процессы chrome:

ps -fC chrome

Команда ps в Linux: Полное руководство по управлению процессами

Дальше можно использовать опцию -L чтобы отобразить информацию о процессах:

ps -fL

Команда ps в Linux: Полное руководство по управлению процессами

Очень интересно то, с помощью опции -o можно настроить форматирование вывода, например, вы можете вывести только pid процесса и команду:

ps -o pid,comm

Команда ps в Linux: Полное руководство по управлению процессами

Вы можете выбрать такие колонки для отображения: pcpu, pmem, args, comm, cputime, pid, gid, lwp, rss, start, user, vsize, priority. Для удобства просмотра можно отсортировать вывод программы по нужной колонке, например, просмотр процессов, которые используют больше всего памяти:

ps -Fe --sort rss

Команда ps в Linux: Полное руководство по управлению процессами

Или по проценту загрузки cpu:

ps -FA --sort pcpu

Команда ps в Linux: Полное руководство по управлению процессами

Ещё одна опция - -M, которая позволяет вывести информацию про права безопасности и флаги SELinux для процессов:

ps -eM

Команда ps в Linux: Полное руководство по управлению процессами

Общее количество запущенных процессов Linux можно узнать командой:

ps -e | wc

Команда ps в Linux: Полное руководство по управлению процессами

Мы рассмотрели все основные возможности утилиты ps. Дальше вы можете поэкспериментировать с её параметрами и опциями чтобы найти нужные комбинации, также можно попытаться применить опции BSD.

Выводы

Команда ps Linux может быть очень полезной если система перегружена и вам необходимо срочно узнать запущенные процессы linux чтобы освободить память или ресурсы процессора. Интерактивные средства не всегда могут помочь, потому что они потребляют слишком много ресурсов. С другой стороны ps дает большую гибкость поскольку утилита имеет множество опций и параметров. Во всяком случае теперь вы знаете как вывести список процессов. Если остались вопросы, спрашивайте в комментариях!

https://www.youtube.com/watch?v=ftn71nXz5hc

 

16-10-2025, 13:02
Вернуться назад