Организация UNIX-систем и ОС Solaris



         

Команды наблюдения за процессами


Для просмотра текущего списка и состояния процессов следует использовать программу ps. Она выдает "мгновенный снимок" таблицы процессов, которые запущены в системе.

Программа ps без аргументов сообщает список процессов, запущенных пользователем в текущей сессии. Обычно системного администратора интересуют все запущенные в системе процессы, список которых можно узнать по команде

ps -ef

В системах BSD и System V программа ps имеет разные ключи, поэтому если вы переходите от одной системы к другой, надо помнить об этих различиях или обращаться к man ps.

Разберем подробнее, какую информацию выдает программа ps:

Пример 7.4. Результат работы программы ps (html, txt)

Ниже мы описываем смысл колонок этого вывода. Некоторые колонки появятся только при использовании специфических ключей, отличных от ключей ef. Для получения еще более детальной информации следует обратиться к man ps.

UID - эффективный идентификатор владельца процесса (реальный выводится при использовании ключа -f).

В колонке F - flags (флаги) - выводятся флаги процесса, это устаревшее поле, сохраненное для совместимости.

В колонке S - state (состояние) - указывается состояние процесса. Состояния бывают следующие:

  • O (ON PROC) - процесс находится в процессоре и выполняется;
  • S (Sleeping) - процесс ждет завершения события (например, ввода-вывода);
  • R (Runnable) - процесс готов к выполнению и ждет своего кванта в очереди к процессору;
  • Z (Zombie) - процесс стал <зомби>, так как завершился, а родительский процесс не подождал его завершения;
  • T (sTopped) - процесс остановлен по сигналу остановки или в процессе трассировки.

Идентификатор PID - уникальный идентификатор процесса, используется при передаче ему сигналов.

PPID - идентификатор родительского процесса.

C - загрузка процессора на планирование задачи (устарело, выводится для совместимости).

CLS - класс планирования.

PRI - приоритет процесса; когда указан ключ -с, бо'льшие значения означают больший приоритет, без ключа -с бо'льшие значения означают меньший приоритет.

NI - значение NICE (показателя уступчивости), используется при вычислении глобального приоритета процессов в классе разделения времени.

ADDR - адрес в памяти.

SZ - размер процесса в виртуальной памяти, включая все отображенные файлы и устройства, измеряется в страницах памяти, для получения размера в килобайтах в большинстве случаев это значение надо умножить на 4, точнее - см. команду pagesize.

WCHAN - адрес события, ради которого процесс перешел в состояние сна; если поле пусто, процесс запущен.

STIME - время запуска процесса, в часах, минутах и секундах, для запущенных более суток назад процессов указываются месяцы и дни.

TTY - управляющий терминал (то же, что и терминальная группа), символ вопросительного знака "?" печатается для процесса без управляющего терминала.

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

CMD - команда, которой был запущен процесс.

При указании ключа j выводятся дополнительные сведения:

PGID - идентификатор лидера группы процессов.

SID - идентификатор процесса - лидера сессии.

При указании ключа L выводятся дополнительные сведения, причем информация выдается по одной строке на каждый легковесный процесс, обычные однопоточные процессы соотносятся только с одним легковесным процессом:

LWP - идентификатор легковесного процесса.

NLWP - число легковесных процессов для процесса.

Завершившиеся процессы, код завершения которых не был востребован родительским процессом, помечаются как "defunct".

Кроме программы ps в UNIX для получения информации о запущенных в данный момент процессах широко используется команда top:




Содержание  Назад  Вперед