Thank you for reading this post, don't forget to subscribe!
ВLinux запущенный экземпляр программы называется процессом. Иногда при работе на компьютере с Linux вам может понадобиться узнать, какие процессы запущены в данный момент.
Есть несколько команд, которые вы можете использовать, чтобы найти информацию о запущенных процессах, ps и top являются наиболее часто используемыми из них.
В этой статье мы поговорим о том, как использовать команду ps для отображения текущих запущенных процессов и отображения информации об этих процессах.
Как использовать команду ps
Общий синтаксис команды ps выглядит следующим образом:
1 |
ps [OPTIONS] |
По историческим причинам и из соображений совместимости команда ps принимает несколько различных типов параметров:
- Опции стиля UNIX, перед которыми стоит одна черточка.
- Варианты стиля BSD, используемые без тире.
- Длинные опции GNU, начинающиеся с двух тире.
Все типы опций могут быть смешанными, но в некоторых особых случаях могут возникать конфликты, поэтому лучше придерживаться одного типа опций. Опции BSD и UNIX могут быть сгруппированы.
В простейшей форме, когда используется без какой-либо опции, ps будет напечатано четыре столбца информации для минимум двух процессов, запущенных в текущей оболочке, самой оболочки и процессов, которые выполняются в оболочке при выполнении команды.
1 |
ps |
Вывод включает в себя информацию о shell (bash) и процессе, запущенном в этой оболочке (введенная вами команда ps):
1 2 3 |
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:
1 |
ps aux |
- Опция a указывает ps вывести на дисплей процессы всех пользователей, за исключением тех процессов, которые не связаны с терминалом и процессами группы лидеров.
- В u – подставки для ориентированных на пользователя формате, который обеспечивает подробную информацию о процессах.
- Опция x в ps перечисляет процессы без управляющего терминала. В основном это процессы, которые запускаются во время загрузки и работают в фоновом режиме.
Команда будет отображать информацию в одиннадцати столбцах USER, PID, %CPU, %MEM, VSZ, RSS, STAT, START, TTY, TIMEи CMD.
1 2 3 4 |
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. Вот объяснение других меток:
- Команды, имена которых заключены в квадратные скобки, в действительности являются не командами, а потоками ядра, запланированными в качестве процессов
Еще один полезный набор аргументов команды ps для систем Linux и AIX — lax, предоставляющий дополнительную техническую информацию. Ключи a и x описаны выше (отображают все роцессы), а ключ l означает выбор “длинного” формата вывода данных. Команда ps lax выполняется быстрее, чем команда ps аuх, так как не со поставляет идентификаторы процессов с именами пользователей. Это может оказаться весьма важным фактором, если система уже перегружена каким-то процессом.
USER Имя владельца процесса PID Идентификатор процесса %CPU Доля времени центрального процессора (в процентах), выделенная процессу %MEM Часть реальной памяти (в процентах), используемая процессом VSZ Виртуальный размер процесса RSS Размер резидентного набора (количество страниц памяти) TTY Идентификатор управляющего терминала STAT Текущий статус процесса:
R — выполняется
D — ожидает записи на диск
S — неактивен (< 20 с)
T — приостановлен
Z — зомби
Дополнительные флаги:
W — процесс выгружен на диск
< — процесс имеет повышенный приоритет
N — процесс имеет пониженный приоритет
L — некоторые страницы блокированы в оперативной памяти
s — процесс является лидером сеансаTIME Количество времени центрального процессора, затраченное на выполнение процесса COMMAND Имя и аргументы команды
Чтобы напечатать дерево процессов, добавьте опцию f. Это укажет ps отобразить древовидное представление дочерних процессов.
1 |
ps auxf |
Команда ps также позволяет вам сортировать вывод. Например, чтобы отсортировать вывод на основе использования памяти, вы бы использовали:
1 |
ps aux --sort=-%mem |
форма UNIX:
1 |
ps -ef |
- Опция e указывает ps отобразить все процессы.
- f – полноформатный список, который содержит подробную информацию о процессах.
Команда будет отображать информацию в столбцах UID, PID, PPID, C, STIME, TIME и CMD.
1 2 3 4 |
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 указано имя пользователя:
1 |
ps -f -U andreyex -u andreyex |
Пользовательский формат
Опция o позволяет указать, какие столбцы будут отображаться при выполнении команды ps.
Например, чтобы напечатать информацию только о PID и COMMAND вы бы выполнить одну из следующих команд:
1 |
ps -efo pid,comm |
1 |
console-bash ps auxo pid,comm |
## Использование команды ps может использоваться в сочетании с другими командами через трубопровод. Если вы хотите отобразить вывод команды ‘ps’, по одной странице за раз передайте его в команде less:
1 |
console-bash ps -ef | less |
Выходные данные команды ‘ps’ могут быть отфильтрованы с помощью grep, например, чтобы показать только процесс, принадлежащий пользователю root, вы должны запустить:
1 |
console-bash ps -ef | grep root `` ` |
Заключение
Команда ps является одной из наиболее часто используемых команд при устранении неполадок в системах Linux. Она имеет много вариантов, но, как правило, большинство пользователей используют либо ps aux или ps -ef для сбора информации о запущенных процессах.