Как отобразить информацию о процессе в системе Linux с помощью команды ps
В многопроцессорных операционных системах, таких как Linux, процессы составляют неотъемлемую часть рабочего процесса системы. Иногда пользователям необходимо перечислить запущенные в системе процессы для целей мониторинга. В таких ситуациях могут оказаться полезными утилиты командной строки Linux.
Команда ps – один из таких инструментов, который отображает информацию, относящуюся к процессам в системе Linux. Давайте посмотрим на команду ps и некоторые важные примеры использования.
Что такое команда ps?
Процесс – это основной компонент вычислений на машине Linux. Каждая открываемая вами программа выполняет один или несколько процессов, которые отвечают за работу компьютера. От расширенного приложения для редактирования видео до простой утилиты, такой как команда mv , все состоит из процессов.
Команда ps, которая является аббревиатурой от Process Status , пригодится, когда вы хотите получить список всех процессов, запущенных в вашей системе. Эта команда также предоставляет пользователю дополнительную информацию, связанную с этими процессами.
Как использовать команду ps в Linux
Базовый синтаксис команды ps:
ps [options]
Выполнение команды ps без аргументов дает следующий результат:
ps

Следующая информация предоставляется в вышеупомянутых выходных данных.
- PID : идентификатор выделенного процесса.
- TTY : отображает имя терминала, который вы используете.
- ВРЕМЯ : время, отведенное процессу процессором.
- 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 означает все .
ps -ax

Отображение процессов в формате BSD
В формате Linux для передачи аргументов с командой используется символ – (дефис). С другой стороны, формат BSD не включает никаких специальных символов с флагами аргументов.
Например, ps -A (формат Linux) отобразит список всех процессов. Эквивалент этой команды в BSD:
ps au
где a обозначает все, а u обозначает пользователей.

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

Вышеупомянутый вывод содержит следующую информацию о процессах.
- UID : идентификатор пользователя, ответственного за процесс.
- PID : идентификатор процесса записи
- PPID : идентификатор родительского процесса.
- C : использование ЦП и информация о расписании, связанная с процессом
- STIME : время, когда процесс был запущен.
- TTY : имя терминала, который вы используете в данный момент.
- ВРЕМЯ : количество процессорного времени, используемого процессом.
- CMD : команда, которая выполнила процесс
Получить список процессов, связанных с пользователем
Параметр -u отображает список всех процессов, запущенных конкретным пользователем.
ps -u username

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

Получить PID процесса
Чтобы получить идентификатор конкретного процесса, используйте флаг -C с командой.
ps -C 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.