Получение информации о процессах
Для получения информации о состоянии процессов используется команда 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