В Linux запущенный экземпляр программы называется процессом. Иногда при работе на компьютере с Linux вам может понадобиться узнать, какие процессы запущены в данный момент.
Есть несколько команд, которые вы можете использовать, чтобы найти информацию о запущенных процессах, ps и top являются наиболее часто используемыми из них.
В этой статье мы поговорим о том, как использовать команду ps для отображения текущих запущенных процессов и отображения информации об этих процессах.
Как использовать команду ps
Общий синтаксис команды ps выглядит следующим образом:
ps [OPTIONS]
По историческим причинам и из соображений совместимости команда ps принимает несколько различных типов параметров:
- Опции стиля UNIX, перед которыми стоит одна черточка.
- Варианты стиля BSD, используемые без тире.
- Длинные опции GNU, начинающиеся с двух тире.
Все типы опций могут быть смешанными, но в некоторых особых случаях могут возникать конфликты, поэтому лучше придерживаться одного типа опций. Опции BSD и UNIX могут быть сгруппированы.
В простейшей форме, когда используется без какой-либо опции, ps будет напечатано четыре столбца информации для минимум двух процессов, запущенных в текущей оболочке, самой оболочки и процессов, которые выполняются в оболочке при выполнении команды.
ps
Вывод включает в себя информацию о shell (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 позволяет убить сбойный процесс.
- 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 – Размер виртуальной памяти процесса в KiB.
- RSS- Размер физической памяти , используемой процессом.
- STAT- Код состояния процесса, который может быть Z (zombie), S (sleeping), R (running) .. и т. д.
- 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, что и время начала команды.
Чтобы увидеть только процессы, запущенные от имени определенного пользователя, используйте следующую команду, где andreyex указано имя пользователя:
ps -f -U andreyex -u andreyex
Пользовательский формат
Опция o позволяет указать, какие столбцы будут отображаться при выполнении команды ps.
Например, чтобы напечатать информацию только о PID и COMMAND вы бы выполнить одну из следующих команд:
ps -efo pid,comm
console-bash ps auxo pid,comm
## Использование команды ps может использоваться в сочетании с другими командами через трубопровод. Если вы хотите отобразить вывод команды ‘ps’, по одной странице за раз передайте его в команде less:
console-bash ps -ef | less
Выходные данные команды ‘ps’ могут быть отфильтрованы с помощью grep, например, чтобы показать только процесс, принадлежащий пользователю root, вы должны запустить:
console-bash ps -ef | grep root `` `
Заключение
Команда ps является одной из наиболее часто используемых команд при устранении неполадок в системах Linux. Она имеет много вариантов, но, как правило, большинство пользователей используют либо ps aux или ps -ef для сбора информации о запущенных процессах.
Для получения информации обо всех доступных опциях ps введите man ps в своем терминале.