Команда ps выводит различную информацию о запущенных процессах. Запущенная без ключей, эта команда выводит сводку процессов, связанных с терминалом, с которого ее запустили. Ключи позволяют а) выбрать процессы, информацию о которых следует вывести; б) указать, какую информацию о процессах выводить.
Основные ключи команды ps:
-e вывести информацию обо всех запущенных процессах;
-u пользователь – вывести информацию о процессах указанного пользователя;
-f "полный" листинг (см. таблицу ниже);
-l "длинный" листинг (см. таблицу ниже);
-j вывести идентификаторы группы процессов и сеанса.
Таблица 1. Поля вывода команды ps
Поле | Описание | Ключи* |
S | Состояние процесса: O - выполняется (On processor), R - готов к запуску (Runnable), S - находится в состоянии сна (Sleeping), Z - зомби (Zombie), T - остановлен (Stopped). | l |
UID | Идентификатор пользователя, от имени которого запущен процесс (с ключом -f выводится имя пользователя) | f,l |
PID | Идентификатор процесса | все |
PPID | Идентификатор родительскогопроцесса | f,l |
PGID | Идентификатор группы процессов | j |
SID | Идентификатор сеанса | j |
PRI | Приоритет процесса (чем больше, тем ниже) | l |
NI | Относительный приоритет (Nice Number) | l |
SZ | Размер процесса в страницах (размер страницы можно узнать командой pagesize) | l |
STIME | Время запуска процесса | f |
TTY | Управляющий терминал ('?' - для демонов) | все |
TIME | Суммарное время, затраченное процессором на исполнение процесса | все |
CMD | Имя процесса (с ключом -f выводятся первые 80 символов командной строки) | все |
*) - в колонке Ключи указано, какой ключ надо дать команде ps, чтобы соответствующее поле появилось в выводе. Пометка " все " обозначает, что поле выводится всегда, в том числе и при запуске команды без ключей. Ключи -f, -l, -j можно использовать совместно для получения комбинированного вывода.
Ключи -f, -l, -j не определяют, о каких процессах выводить данные, а устанавливают только формат вывода. Для отбора процессов используйте ключи -e, -u.
Команда ps имеет также ключ -o (буква "о"), параметром которого является список полей вывода через запятую. Таким образом, можно выбрать только необходимые поля, а также вывести дополнительные данные о процессе, не перечисленные в таблице выше. Наименования полей для ключа -o см. в справочнике man.
Команда pstree выводит процессы в форме дерева. Основным преимуществом является то, что вы сразу можете увидеть родительские процессы: если вам нужно уничтожить целую серию процессов, а они все происходят от одного родителя, вы можете просто убить этот родительский процесс. Вам придётся воспользоваться опцией -p для вывода PID всех процессов и опцией -u для вывода имени пользователя, запустившего процесс. Т.к. дерево зачастую довольно большое, вам потребуется запустить pstree следующим образом:
pstree -up | less
При этом вы получите обзор всей структуры дерева процессов.
Команда ps делает моментальный снимок процессов в текущий момент. В отличии от нее, команда t op - динамически выводит состояние процессов и их активность в реальном режиме времени.(Для выхода из нее можно нажать клавишу Q).
В верхней части вывода отображается астрономическое время, время, прошедшее с момента запуска системы, число пользователей в системе, число запущенных процессов и число процессов, находящихся в разных состояниях, данные об использовании ЦПУ, памяти и раздела подкачки. Далее идет таблица, характеризующая отдельные процессы. Число строк, отображаемых в этой таблице, определяется размером окна: сколько строк помещается, столько и выводится.
Содержимое окна обновляется каждые 5 секунд. Список процессов может быть отсортирован по используемому времени ЦПУ (по умолчанию), по использованию памяти, по PID, по времени исполнения. Переключать режимы отображения можно с помощью следующих клавиатурных команд:
<Shift>+<N> — сортировка по PID;
<Shift>+<A> — сортировать процессы по возрасту;
<Shift>+<P> — сортировать процессы по использованию ЦПУ;
<Shift>+<M> — сортировать процессы по использованию памяти;
<Shift>+<T> — сортировка по времени выполнения.
С помощью команды <K> можно завершить некоторый процесс (его PID будет запрошен), а с помощью команды <R> можно переопределить значение nice для некоторого процесса.