ps

Перейти к навигацииПерейти к поиску

ps (от англ. process status) — программа в UNIX, Unix-подобных и других POSIX-совместимых операционных системах, выводящая отчёт о работающих процессах.

Синтаксис

ps [опции]
  • Опции, отбирающие процессы для отчёта:
    • A : все процессы;
    • a : связанные с конкретным терминалом, кроме главных системных процессов сеанса, часто используемая опция;
    • N : отрицание выбора;
    • d : все процессы, кроме главных системных процессов сеанса;
    • e : все процессы;
    • p: только перечисленные процессы (следом указывается один или несколько PID);
    • f : расширение информации;
    • T : все процессы на конкретном терминале;
    • a : процессы, связанные с текущим терминалом, а также процессы других пользователей;
    • r : информация только о работающих процессах;
    • x : процессы, отсоединённые от терминала;
    • u : выбор идентификатора(ов) эффективного пользователя;
    • U : выбор идентификатора(ов) реального пользователя.
    • o : позволяет определить свой формат вывода (после -o добавляем pid,comm,tty)

Выводимая информация

Столбцы:

  • UID : идентификатор пользователя;
  • PID : идентификатор процесса;
  • PPID : идентификатор родительского процесса;
  • C : приоритет процесса, используемый планировщиком задач;
  • STIME : время старта процесса;
  • TTY : терминал, с которым связан данный процесс;
  • RSS : размер страниц памяти;
  • TIME : процессорное время, занятое этим процессом;
  • CMD : команда, запустившая данный процесс «с некоторыми опциями выводит и каталог, откуда процесс был запущен»;
  • STAT : состояние, в котором на данный момент находится процесс;
  • WCHAN : для спящего процесса, это адрес функции ядра, где он сейчас находится; если процесс выполняется, то "-".

Опция o позволяет указать набор столбцов в ответе:

ps -o pid,user,command

Параметры STAT

  • R : процесс выполняется в данный момент;
  • S : процесс ожидает (т.е. спит менее 20 секунд);
  • I : процесс бездействует (т.е. спит больше 20 секунд);
  • D : процесс ожидает ввода-вывода (или другого недолгого события), непрерываемый;
  • Z : zombie или defunct процесс, то есть завершившийся процесс, код возврата которого пока не считан родителем;
  • T : процесс остановлен;
  • W : процесс в свопе;
  • < : процесс в приоритетном режиме;
  • N : процесс в режиме низкого приоритета;
  • L : real-time процесс, имеются страницы, заблокированные в памяти;
  • s : лидер сессии.

Примеры использования

# ps
PID  TTY      TIME     CMD
2643 pts/0    00:00:00 su
2644 pts/0    00:00:00 bash
3092 pts/0    00:00:00 ps
# ps ax
PID TTY      STAT   TIME COMMAND
1   ?        S      0:01 init [3]
2   ?        SN     0:00 [ksoftirqd/0]
3   ?        S<     0:00 [events/0]
4   ?        S<     0:00 [khelper]
5   ?        S<     0:00 [kblockd/0]
29  ?        S      0:00 [pdflush]
# ps af
PID  TTY      STAT   TIME COMMAND
2617 pts/0    Ss     0:00 -bash
2643 pts/0    S      0:00  \_ su -
2644 pts/0    S      0:00      \_ -bash
3100 pts/0    R+     0:00          \_ ps af
2176 tty6     Ss+    0:00 /sbin/mingetty tty6
2175 tty5     Ss+    0:00 /sbin/mingetty tty5

Примечания

  • Альтернативой ps является команда top, удобно выводящая на экран постоянно обновляющуюся информацию, однако top ограничена размерами окна, поэтому всё, что не может поместиться на экран, просто игнорируется.
  • Для команды ps удобно пользоваться конвейером и утилитой less для пролистывания выводимой информации с помощью кнопок вверх и вниз, например ps ax | less.
  • С помощью утилиты grep удобно искать и выводить только нужные процессы, например ps ax | grep smbd.
  • В связи с возможностью написания модуля, подгружаемого к ядру, и возвращающего на запрос от ps модифицированный список процессов, администраторам не рекомендуется всецело полагаться на результаты ps и top при подозрениях на возможность несанкционированного вмешательства.

Ссылки