Команда PS

ОПИСАНИЕ
Команда 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         Имя файла, откуда была загружена операционная система.

СМ. ТАКЖЕ kill.

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

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

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

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