Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

PS

НАЗВАНИЕ
ps - выдача информации о состоянии процессов

СИНТАКСИС


  ps [-e] [-d] [-a] [-f] [-l] [-n файл_с_системой] [-t список_терминалов]
     [-p список_идентификаторов_процессов]
     [-u список_идентификаторов_пользователей]
     [-g список_идентификаторов_лидеров_групп]

ОПИСАНИЕ
Команда ps выдает информацию об активных процессах. По умолчанию информация дается только о процессах, ассоциированных с данным терминалом. Выводятся идентификатор процесса, идентификатор терминала, истраченное к данному моменту время ЦП и имя команды. Если нужна иная информация, следует пользоваться опциями.

Некоторые опции имеют один аргумент или список аргументов. Аргументы в списке могут быть либо отделены друг от друга запятыми, либо все вместе заключены в двойные кавычки и отделены пробелами или запятыми. Аргументы в списке_процессов и в списке_групп должны быть числами.

Командой ps обрабатываются следующие опции:

-e
Вывести информацию обо всех процессах.

-d
Вывести информацию обо всех процессах, кроме лидеров групп.

-a
Вывести информацию обо всех наиболее часто запрашиваемых процессах, то есть обо всех процессах, кроме лидеров групп и процессов, не ассоциированных с терминалом.

-f
Генерировать полный листинг (см. ниже разъяснение смысла колонок).

-l
Генерировать листинг в длинном формате (см. ниже).

-n файл_с_системой
Считать, что операционная система загружена из файла_с_системой, а не из файла /unix.

-t список_терминалов
Выдавать информацию только о процессах, ассоциированных с терминалами из заданного списка_терминалов. Терминал - это либо имя файла-устройства, например ttyномер или console, либо просто номер, если имя файла начинается с tty.

-p список_идентификаторов_процессов
Выдавать информацию только об указанных процессах.

-u список_идентификаторов_пользователей
Выдавать информацию только о процессах с заданными идентификаторами или входными именами пользователей. Идентификатор пользователя выводится в числовом виде, а при наличии опции -f - в символьном.

-g список_идентификаторов_лидеров_групп
Выводить информацию только о процессах, для которых указаны идентификаторы лидеров групп. Лидер группы - это процесс, номер которого идентичен его идентификатору группы. Shell, запускаемый при входе в систему, является стандартным примером лидера группы процессов.

При указании опции -f ps пытается определить имя команды и аргументы, с которыми был создан процесс, исследуя пользовательский блок процесса. Если это не удается, имя процесса выводится так же, как и при отсутствии опции -f, только заключается в квадратные скобки.

Ниже приводятся заголовки колонок выдачи и поясняется смысл их содержимого. Буквы l или f в скобках означают, что эта колонка появляется соответственно при длинном или полном формате выдачи; отсутствие букв означает, что данная колонка выводится всегда. Отметим, что опции -l и -f влияют только на формат выдачи, но не на список процессов, информация о которых будет предоставлена.

F (l)Флаги (шестнадцатеричные), логическая сумма которых дает следующие сведения о процессе:
00Процесс терминирован; элемент таблицы процессов свободен.
01Системный процесс: всегда в основной памяти.
02Процесс трассируется родительским процессом.
04Родительский трассировочный сигнал остановил процесс; родительский процесс ждет.
08Процесс не может быть разбужен сигналом.
10Процесс в основной памяти.
20Процесс в основной памяти; блокирован до завершения события.
40Идет сигнал к удаленной системе.
80Процесс в очереди на ввод/вывод.
S (l)Статус процесса:
OАктивный: обрабатывается процессором.
SСпящий: ожидает завершения события.
RГотов: стоит в очереди на выполнение.
IРождающийся: процесс создается.
ZСостояние "зомби": процесс завершен, но родительский процесс не ждет этого.
TТрассируемый: процесс остановлен сигналом, так как родительский процесс трассирует его.
XРастущий: процесс ожидает получения большего объема основной памяти.
UID (f,l)Идентификатор владельца процесса; при указании опции -f выдается входное имя пользователя.
PIDИдентификатор процесса (необходим для терминирования процесса).
PPID(f,l)Идентификатор родительского процесса.
C (f,l)Доля выделенного планировщиком времени ЦП.
STIME (f)Время запуска процесса (часы:минуты:секунды). Если процесс запущен более чем 24 часа назад, выдается месяц и день запуска.
PRI (l)Приоритет процесса; большее число означает меньший приоритет.
NI (l)Поправка к приоритету.
ADDR (l)Адрес процесса в памяти.
SZ (l)Размер (в блоках по 512 байт) образа процесса в памяти.
WCHAN (l)Адрес события, которого ожидает процесс. У активного процесса эта колонка пуста.
TTYУправляющий терминал (обычно - терминал, с которого был запущен процесс; см. ниже СЮРПРИЗЫ). Если такового нет, выдается символ ?.
TIMEИстраченное процессом время ЦП.
COMMANDИмя программы; если указана опция -f, то выводится полное имя команды и ее аргументы.

Процесс, закончивший выполнение своей программы, и имеющий родительский процесс, не дождавшийся еще завершения, в качестве имени программы получает <defunct>.

ФАЙЛЫ


  /dev
  /dev/sxt/*
  /dev/tty*
  /dev/kmem     Виртуальная память ядра.
  /dev/mem      Память.
  /etc/passwd   Файл паролей, из которого берется информация об
                идентификаторах пользователей.
  /etc/ps_data  Внутренняя структура данных.
  /unix         Имя файла, откуда была загружена операционная система.

СМ. ТАКЖЕ kill.

СЮРПРИЗЫ
Во время выполнения команды ps положение вещей может измениться; таким образом, ps дает лишь хорошее приближение к действительности.

Некоторые сведения, относящиеся к процессам, отмеченным как <defunct>, не соответствуют действительности.

Если не указана ни одна из опций -t, -p, -u, -g, команда ps проверяет стандартный ввод, стандартный вывод и стандартный протокол (в указанном порядке) для определения управляющего терминала и пытается вывести информацию о процессах, ассоциированных с этим терминалом. В ситуации, когда все три стандартных направления ввода/вывода переназначены, ps не может найти и выдать имя управляющего терминала.

Команда ps -ef может не отметить начало входа в систему, а вывести сведения о последнем запуске для данной терминальной линии.