Мониторинг многозадачной среды

Информация о состоянии процессов. Мониторинг процессов с помощью ps

Назначение команды ps – отслеживание работы фоновых и других процессов в системе. Поскольку в большинстве случаев фоновые процессы никак не взаимодействуют ни с экраном, ни с клавиатурой, то ps остается основным средством наблюдения за ними. Как правило, эта команда используется с рядом параметров, которые определяют выводимые поля. Одни из основных полей, выводимые командой ps перечислены в таблице 3, а некоторые опции этой команды – в таблице 4.

 

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

Поле Описание
USER Имя пользователя
PID Идентификатор процесса
%CPU Процентная часть ресурсов ЦП используемая данным процессом
%MEM Процентная часть ресурсов ОЗУ используемая данным процессом
TTY Терминал, с которого был запущен процесс
STAT Статус процесса (R – выполняется, S – в режиме ожидания, N – процесс сниженного приоритета, W – временно полностью выгружен из памяти)
START Время начала работы процесса
TIME Время работы процесса
COMMAND Имя выполненной команды

 

Таблица 4. Некоторые опции команды ps

Опция Описание
-a Процессы всех пользователей
-l Расширенный формат вывода с дополнительной информацией
-r Только работающие процессы
-u Формат вывода с указанием пользователя
-x Показать процессы без контролирующего терминала

 

Теперь приведем несколько примеров использования команды ps. Итак, если без опций команда ps вывела информацию в виде

# ps

PID TTY TIME CMD

559 tty1 00:00:01 login

560 tty1 00:00:01 bash

583 tty1 00:00:00 ps

то при запросе информации только о работающих процессах:

#ps - r

PID TTY STAT TIME COMMAND

594 tty1 R 0:00 ps -r

Теперь, посмотрим результат вывода следующей команды:

 

#ps - ruax

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

root 595 0.0 0.5 2304 660 tty1 R 16:14 0:00 ps -ruax

Следует также отметить, что в случае, когда вся выводимая информация не помещается целиком на экране, следует воспользоваться командой more (см. пример в пункте 2.2)

 

Получение списка пользователей, работающих в системе

Для того чтобы узнать, кто в данный момент находится в системе и с чем работает – используется команда w.

Для получения списка зарегистрированных в системе пользователей вам надо просто ввести who, и вы увидите на экране список, похожий на приведенный ниже:

# who

root console May 19 07:00

kiv tty02 May 19 08:12

sam tty03 May 19 09:35

cyr ttys7 May 19 12:55

Как видно, в системе зарегистрировано четыре пользователя; в списке приведено также время регистрации каждого из них.

Команда who имеет несколько опций, однако здесь мы расскажем только о двух из них.

· -u перечисляет пользователей с указанием времени бездействия (точка (.) означает, что пользователь активно работал в последнюю минуту, old – что последний раз он нажимал клавиши более суток назад);

· -H выводит заголовок.

 

Таблица 5. Поля вывода команды who

Поле Описание
USER Имена пользователей
LINE Использованные линии и терминалы
LOGIN-TIME Время входа пользователя в систему
IDLE Время бездействия пользователя
FROM Имя удалённой машины или дисплея Х-терминала

Запуск команд в заданное время с помощью команд at и batch

ОС Linux предоставляет различные возможности контроля выполнения команд. Например, можно составить список команд и определить, когда они должны быть запущены. Команда at, например, получает список команд (введенный с клавиатуры или находящийся в файле) и запускает их в определенное в команде время. Команда batch подобна команде at, но запускается не в определенное пользователем время, а когда система сама решит, что загрузка позволяет ей запустить дополнительные процессы.