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