
В 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 в терминале.
Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.
Связанные руководства