Основы операционной системы UNIX

Получение информации о процессах


Для получения информации о состоянии процессов используется команда ps. Она имеет следующий синтаксис:

ps [-acdelfjLP]

[-t список_терминалов]

   [-p список_идентификаторов_процессов]

   [-u|U список_идентификаторов_пользователей]

   [-g список_идентификаторов_лидеров_групп]

   [-G список_числовых_идентификаторов_групп]

Основные опции команды ps в системах SVR4 и BSD описаны в табл. 16.

Таблица 16. Опции команды ps



Опция Назначение
-aПредоставляет информацию обо всех процессах, кроме групповых, и не связанных с терминалом.
-dПредоставляет информацию обо всех процессах, исключая лидеров сеанса.
-eПредоставляет информацию обо всех процессах.
-lГенерирует длинный листинг.
-fГенерирует полный листинг.
-g списокВыводит информацию только о процессах, для которых указаны идентификаторы лидеров групп. Лидер группы - это процесс, номер которого идентичен его идентификатору группы. Командный интерпретатор, запускаемый при входе в систему, является стандартным примером лидера группы.
-G списокПредоставляет информацию обо всех процессах, имеющих отношение к указанным номерам групп.
-p списокПредоставляет информацию по процессам с указанными идентификаторами.
-t списокПредоставляет информацию по процессам, имеющим отношение к указанным терминалам.
-U списокПредоставляет информацию обо всех процессах, имеющих отношение к указанным идентификаторам пользователей.
-u списокПредоставляет информацию обо всех процессах, имеющих отношение к указанным именам пользователей.

Основные поля в результатах выполнения команды ps представлены в табл. 17.

Таблица 17. Основные характеристики процессов, предоставляемые командой ps

Заголовок Значение
ADDRАдрес процесса в памяти.
СДоля выделенного планировщиком времени ЦП.
COMDИмя команды и аргументы (для опции -f).
FФлаги (шестнадцатеричные), логическая сумма которых дает следующие сведения о процессе:

00 - процесс терминирован; элемент таблицы процессов свободен;

01 - системный процесс: всегда в основной памяти;

02 - процесс трассируется родительским процессом;

04 - родительский трассировочный сигнал остановил процесс; родительский процесс ждет [см. ptrace(2)];

08 - процесс не может быть разбужен сигналом;

10 - процесс в основной памяти;

20 - процесс в основной памяти; блокирован до завершения события;

40 - идет сигнал к удаленной системе;

80 - процесс в очереди на ввод-вывод.

NIПоправка приоритета.
PIDИдентификатор процесса.
PPIDИдентификатор родительского процесса.
PRIТекущий приоритет процесса.
SСостояние процесса:

B,W - процесс находиться в состоянии ожидания;

I - создание процесса;

O - процесс выполняется;

R - находиться в очереди готовых к выполнению процессов;

S - процесс не активен;

T - процесс трассируется;

X - ожидает дополнительной оперативной памяти;

Z - процесс "зомби".

STIMEВремя запуска процесса.
SZРазмер (в блоках по 512 байт) образа процесса в памяти.
TIMEОбщее время выполнения для процесса
TTYТерминальная линия процесса
UIDИдентификатор пользователя владельца процесса
WCHANАдрес события, которого ожидает процесс. У активного процесса этот столбец - пустой.

В зависимости от переданных опций и реализации, команда ps может выдавать и другие атрибуты. Команду ps может выполнять любой пользователь. Рассмотрим простой пример:

[kravchuk@arturo 15:59:30 /]$ ps PID TTY TIME CMD 3697 pts/14 0:00 bash [kravchuk@arturo 15:59:33 /]$ ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 8 S 31061 3697 3679 0 51 20 e3110048 499 e31100b4 pts/14 0:00 bash [kravchuk@arturo 15:59:38 /]$ ps -p 5726 PID TTY TIME CMD 5726 pts/1 0:00 mc



Содержание раздела