Советы по Linux

Как отобразить информацию о процессе в системе Linux с помощью команды ps

Хотите знать, какие процессы запущены на вашем компьютере под управлением Linux? Узнайте, как использовать команду ps.

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

Команда ps — один из таких инструментов, который отображает информацию, относящуюся к процессам в системе Linux. Давайте посмотрим на неё и некоторые важные примеры использования.

Что такое команда ps?

Процесс — основной компонент вычислений на Linux. Каждая открываемая вами программа выполняет один или несколько процессов, которые отвечают за работу компьютера. От продвинутого приложения редактирования видео до простой утилиты, такой как команда mv, всё состоит из процессов.

Команда ps (что является аббревиатурой от Process Status) пригодится, когда вы хотите получить список всех запущенных в вашей системе процессов. Эта команда также предоставляет пользователю дополнительную информацию, связанную с этими процессами.

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

Базовый синтаксис команды ps:

ps [options]

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

ps

Следующая информация предоставляется в вышеупомянутых выходных данных.

  • PID: идентификатор выделенного процесса
  • TTY: отображает имя терминала, который вы используете
  • TIME: время, отведенное процессу процессором
  • CMD: команда, отвечающая за запуск процесса

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

Чтобы получить список всех процессов в системе Linux, используйте флаг -A или -e с командой ps.

ps -A

ps -e

Просмотр процессов, связанных с терминалом

Флаг -T отобразит список всех процессов, связанных с терминалом.

ps -T

Результат выглядит примерно так.

Отображение не связанных с терминалом процессов

Флаг -a перечислит процессы, которые не связаны с текущим терминалом.

ps -a

На экране отобразится результат.

Отмена указанных параметров

Вы также можете использовать флаг -N или —deselect с командой ps, чтобы инвертировать работу определённого аргумента.

Например, опция -T отображает связанные с терминалом процессов. Добавление флага -N или —deselect с командой покажет процессы, которые не связаны с текущим терминалом.

ps -T -N

ps -T --deselect

Отображение настраиваемых столбцов в выводе

Команда ps по умолчанию отображает следующие столбцы: PID, TTY, TIME и CMD. Однако вы можете настроить эти столбцы и вместо этого показать другие сведения.

Флаг -eo позволяет вам указать столбцы, которые вы хотите получить в выводе.

ps -eo pid, uname, pcpu, stime, pri, f

Переименование столбцов в выводе

Вы также можете переименовать метки столбцов в выводе. Это делается при помощи флага -o.

ps -e -o pid=Process_ID, uid=User_ID, com=COMMAND

Список запущенных процессов

Чтобы получить список запущенных в настоящее время в системе процессов, передайте флаг -ax с командой ps. -A означает все (All).

ps -ax

Отображение процессов в формате BSD

В формате Linux для передачи аргументов с командой используется символ — (дефис). С другой стороны, формат BSD не включает никаких специальных символов с флагами аргументов.

Например, ps -A (формат Linux) отобразит список всех процессов. Эквивалент этой команды в BSD:

ps au

где a обозначает All (все), а u обозначает пользователей.

Полный формат списка процессов

Чтобы получить подробную информацию о процессах, передайте с командой параметр -ef или -eF.

ps -ef

ps -eF

Вышеупомянутый вывод содержит следующую информацию о процессах.

  • UID: идентификатор пользователя, ответственного за процесс
  • PID: идентификатор процесса записи
  • PPID: идентификатор родительского процесса
  • C: использование процессора и информация о расписании, связанная с процессом
  • STIME: время, когда процесс был запущен
  • TTY: имя терминала, который вы используете в данный момент
  • TIME: количество процессорного времени, используемого процессом
  • CMD: команда, которая выполнила процесс

Получение связанных с пользователем списка процессов

Параметр -u отображает список всех процессов, запущенных конкретным пользователем.

ps -u username

Показ связанных с корневым пользователем процессов

Чтобы отобразить все процессы, запущенные пользователем root, передайте root с флагами -U и -u.

ps -U root -u root

Получение PID процесса

Чтобы получить идентификатор конкретного процесса, используйте флаг -C с командой.

ps -C process-name

Замените process-name именем процесса. На выходе будет отображаться идентификатор процесса.

ps -C bash

Список потоков конкретного процесса

Возможно, вы знаете, что процесс может содержать несколько потоков, каждый из которых отвечает за конкретную задачу. Чтобы отобразить список потоков процесса, используйте флаг -L с командой ps. Обратите внимание, что вам нужно будет передать идентификатор процесса вместе с командой.

ps -L pid

Например

ps -L 1250

Отображение связанного с определённой группой процесса

Также легко получить список процессов, относящихся к определённой группе. Используйте флаг -fG с командой по умолчанию.

ps -fG groupname

В качестве альтернативы вы можете передать идентификатор группы вместо имени g-roup.

ps -fG groupid

Например

ps -fG sudoers

ps -fg 1000

Отображение процессов в формате дерева

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

ps -f --forest -C bash

Вышеупомянутая команда отобразит все связанные с bash процессы.

Мониторинг запущенных процессов в Linux

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

Для тех, у кого недорогие компьютеры и кому нужна операционная система с обеспечением бесперебойной работы, доступно множество облегчённых дистрибутивов Linux.

Александр

Специалист по информационной безопасности с 10-ти летним опытом. Отец троих детей. Независимый консультант по вопросам кибер безопасности. 6 лет опыта интеграции решений кибербезопасности с другими продуктами в существующих инфраструктурах на корпоративном уровне.

Share
Published by
Александр
Tags: FAQLinux

Recent Posts

Как проверить открытые порты на компьютере на Windows 10

Быть может, у вас возникла проблема с сетевым подключением определённой программы и необходимо проверить, открыт…

2 года ago

Как остановить поток спама по электронной почте

Если у вас есть электронная почта, скорее всего вы регулярно получаете в свой ящик большое…

2 года ago

Как торговать NFT на OpenSea

Нет лучшего места для продажи NFT, чем OpenSea. От криптокотят (CryptoKitties) до произведений искусства и…

2 года ago

Как выполнить сброс настроек MacBook Air до заводских

https://youtu.be/68-egN2ZTjg Сброс настроек любого устройства до заводских часто рекомендуется как средство устранения проблем в его…

2 года ago

Как Chromecast позволяет играть на телевизоре

Мало кто знает, что устройства Chromecast дают возможность вести потоковую трансляцию игр, а не только…

2 года ago

Как скрыть статус «Онлайн» в WhatsApp

Пользователи всё чаще задумываются о вопросах конфиденциальности при работе с мессенджерами, в том числе с…

2 года ago