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