PS(1)
НАЗВАНИЕ
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 | Родительский трассировочный сигнал остановил процесс; родительский процесс ждет
[см. ptrace(2)].
|
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, то выводится полное имя команды и ее аргументы.
|
---|
Процесс, закончивший выполнение своей программы, и имеющий родительский процесс, не дождавшийся еще завершения, в качестве имени программы получает .
ФАЙЛЫ
/dev
/dev/sxt/*
/dev/tty*
/dev/kmem Виртуальная память ядра.
/dev/mem Память.
/etc/passwd Файл паролей, из которого берется инфор-
мация об идентификаторах пользователей.
/etc/ps_data Внутренняя структура данных.
/unix Имя файла, откуда была загружена операци-
онная система.
СМ. ТАКЖЕ
acctcom(1), kill(1), nice(1).
getty(1M) в Справочнике администратора.
СЮРПРИЗЫ
Во время выполнения команды ps положение вещей может
измениться; таким образом, ps дает лишь хорошее приближение к действительности.
Некоторые сведения, относящиеся к процессам, отмеченным
как , не соответствуют действительности.
Если не указана ни одна из опций -t, -p, -u, -g, команда ps проверяет стандартный ввод, стандартный вывод и
стандартный протокол (в указанном порядке) для определения управляющего терминала и пытается вывести информацию о процессах, ассоциированных с этим терминалом. В
ситуации, когда все три стандартных направления ввода/
вывода переназначены, ps не может найти и выдать имя
управляющего терминала.
Команда ps -ef может не отметить начало входа в систему, а вывести сведения о последнем запуске getty(1M)
для данной терминальной линии.