Команда Ps в Linux (список процессов)

В Linux запущенный экземпляр программы называется процессом. Иногда при работе на машине Linux вам может потребоваться выяснить, какие процессы выполняются в данный момент.

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

В этой статье объясняется, как использовать команду ps для вывода списка запущенных в данный момент процессов и отображения информации об этих процессах.

Как использовать команду ps

Общий синтаксис команды ps следующий:

ps [OPTIONS]

По историческим причинам и из соображений совместимости команда ps принимает несколько различных типов параметров:

  • Параметры стиля UNIX, которым предшествует одиночный дефис.
  • Параметры стиля BSD, используемые без тире.
  • Параметры GNU с двумя дефисами перед ними.

Можно смешивать разные типы опций, но в некоторых конкретных случаях могут возникать конфликты, поэтому лучше придерживаться одного типа опций.

Опции BSD и UNIX можно сгруппировать.

В простейшей форме, при использовании без какой-либо опции, ps напечатает четыре столбца информации как минимум для двух процессов, запущенных в текущей оболочке, самой оболочки и процессов, запущенных в оболочке при вызове команды.

ps

Вывод включает информацию о оболочке ( bash ) и процессе, запущенном в этой оболочке ( ps , команда, которую вы ввели):

  PID TTY          TIME CMD
 1809 pts/0    00:00:00 bash
 2043 pts/0    00:00:00 ps

Четыре столбца помечены как PID , TTY , TIME и CMD .

  • PID — идентификатор процесса. Обычно при запуске команды ps наиболее важной информацией, которую ищет пользователь, является PID процесса. Знание PID позволяет устранить неисправный процесс .
  • TTY — имя управляющего терминала для процесса.
  • TIME — совокупное время ЦП процесса в минутах и секундах.
  • CMD — имя команды, которая использовалась для запуска процесса.

Приведенный выше вывод не очень полезен, поскольку не содержит много информации. Настоящая мощь команды ps проявляется при запуске с дополнительными параметрами.

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

ps чаще всего используется со следующей комбинацией параметров:

Форма BSD :

ps aux
  • Параметр a указывает ps отображать процессы всех пользователей. Не отображаются только процессы, не связанные с терминалом, и процессы руководителей групп.
  • u обозначает ориентированный на пользователя формат, который предоставляет подробную информацию о процессах.
  • Параметр x указывает ps перечислить процессы без управляющего терминала. В основном это процессы, которые запускаются во время загрузки и работают в фоновом режиме .

Команда отображает информацию в одиннадцати столбцах, обозначенных USER , PID , %CPU , %MEM , VSZ , RSS , STAT , START , TTY , TIME и CMD .

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.8  77616  8604 ?        Ss   19:47   0:01 /sbin/init
root         2  0.0  0.0      0     0 ?        S    19:47   0:00 [kthreadd]
...

Мы уже объяснили метки PID , TTY , TIME и CMD . Вот объяснение других этикеток:

  • USER — пользователь, запускающий процесс.
  • %CPU — загрузка процессора процессом.
  • %MEM — процентное отношение размера резидентного набора процесса к физической памяти на машине.
  • VSZ — размер виртуальной памяти процесса в КиБ.
  • RSS — размер физической памяти, которую использует процесс.
  • STAT — код состояния процесса, например Z (зомби), S (спящий) и R (запущенный).
  • START — время начала команды.

Параметр f указывает ps отображать древовидное представление родительских и дочерних процессов:

ps auxf

Команда ps также позволяет сортировать вывод. Например, чтобы отсортировать вывод на основе использования памяти , вы должны использовать:

ps aux --sort=-%mem

Форма UNIX :

ps -ef
  • Параметр -e указывает ps отображать все процессы.
  • -f обозначает полноформатный список, который предоставляет подробную информацию о процессах.

Команда отображает информацию в восьми столбцах, обозначенных UID , PID , PPID , C , STIME , TIME и CMD .

UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 19:47 ?        00:00:01 /sbin/init
root         2     0  0 19:47 ?        00:00:00 [kthreadd]
...

Метки, которые еще не объяснены, имеют следующее значение:

  • UID — то же самое, что и USER , пользователь, запускающий процесс.
  • PPID — идентификатор родительского процесса.
  • C — То же, что и %CPU , загрузка процессора процессом.
  • STIME — то же самое, что и START , время начала команды.

Чтобы просмотреть только процессы, запущенные от имени конкретного пользователя, введите следующую команду, где linuxize — это имя пользователя:

ps -f -U linuxize -u linuxize

Пользовательский формат

Параметр o позволяет указать, какие столбцы будут отображаться при запуске команды ps .

Например, чтобы распечатать информацию только о PID и COMMAND , вы должны выполнить одну из следующих команд:

ps -efo pid,comm
ps auxo pid,comm

Использование ps с другими командами

ps можно использовать в сочетании с другими командами через конвейер.

Если вы хотите отобразить вывод команды ps , по одной странице за раз передайте его команде less :

ps -ef | less

Вывод команды ps можно отфильтровать с помощью grep . Например, чтобы показать только процесс, принадлежащий пользователю root, вы должны запустить:

ps -ef | grep root

Выводы

Команда ps — одна из наиболее часто используемых команд при устранении неполадок в системах Linux. У него много опций, но обычно большинство пользователей используют ps aux или ps -ef для сбора информации о запущенных процессах.

Чтобы получить дополнительную информацию о ps , введите в терминале man ps .

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Оставьте комментарий