Библиотека сайта 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 может не отметить начало входа в систему, а вывести сведения о последнем запуске для данной терминальной линии.