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