В Linux запущенный экземпляр программы называется процессом. Иногда при работе на компьютере с Linux вам может понадобиться узнать, какие процессы запущены в данный момент.
Есть несколько команд, которые вы можете использовать, чтобы найти информацию о запущенных процессах, ps и top являются наиболее часто используемыми из них.
В этой статье мы поговорим о том, как использовать команду ps для отображения текущих запущенных процессов и отображения информации об этих процессах.
Общий синтаксис команды ps выглядит следующим образом:
ps [OPTIONS]
По историческим причинам и из соображений совместимости команда ps принимает несколько различных типов параметров:
Все типы опций могут быть смешанными, но в некоторых особых случаях могут возникать конфликты, поэтому лучше придерживаться одного типа опций. Опции 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.
Вывод выше не очень полезен, так как он не содержит много информации. Настоящая сила команды ps появляется при запуске с дополнительными опциями.
Команда ps принимает огромное количество опций, которые можно использовать для отображения определенной группы процессов и различной информации о процессе, но для повседневного использования требуется лишь несколько из них.
Команда ps чаще всего используется со следующей комбинацией параметров:
Форма BSD:
ps aux
Команда будет отображать информацию в одиннадцати столбцах 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. Вот объяснение других меток:
Чтобы напечатать дерево процессов, добавьте опцию f. Это укажет ps отобразить древовидное представление дочерних процессов.
ps auxf
Команда ps также позволяет вам сортировать вывод. Например, чтобы отсортировать вывод на основе использования памяти, вы бы использовали:
ps aux --sort=-%mem
форма UNIX:
ps -ef
Команда будет отображать информацию в столбцах 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] ...
Метки, которые еще не объяснены, имеют следующее значение:
Чтобы увидеть только процессы, запущенные от имени определенного пользователя, используйте следующую команду, где 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 в своем терминале.