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

СинтаксисПравить

ps [опции]
  • Опции, отбирающие процессы для отчёта:
    • -A : все процессы;
    • -a : связанные с конкретным терминалом, кроме главных системных процессов сеанса, часто используемая опция;
    • -N : отрицание выбора;
    • -d : все процессы, кроме главных системных процессов сеанса;
    • -e : все процессы;
    • T : все процессы на конкретном терминале;
    • a : процессы, связанные с текущим терминалом, а так же процессы других пользователей;
    • r : информация только о работающих процессах;
    • x : процессы, отсоединённые от терминала.

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

Столбцы :

  • UID : идентификатор пользователя;
  • PID : идентификатор процесса, в основном используется для уничтожения процесса «kill -9 PID» который завис или занял файл «это часто случается при работе c cd-rom, для обнаружения процесса занявшего файл используется либо команда fuser /mnt/cdrom либо lsof +d /mnt/cdrom, напомню что команда lsof при работе с простым пользователем выдаёт информацию только по его процессам и запускается вот такой командой /usr/sbin/lsof а не просто lsof»;
  • PPID : идентификатор родительского процесса «напомню что родителем всех процессов является процесс init с PID равной 1, поэтому его нежелательно уничтожать»;
  • C : приоритет процесса, используемый планировщиком задач;
  • STIME : время старта процесса;
  • TTY : терминал, с которым связан данный процесс;
  • TIME : общее время работы процесса;
  • CMD : команда, запустившая данный процесс «с некоторыми опциями выводит и каталог откуда процесс был запущен»;
  • STAT : состояние, в котором на данный момент находится процесс.

Параметры STATПравить

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

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

# 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 при подозрениях на возможность несанкционированного вмешательства.

СсылкиПравить