Информация о состоянии процессов. Мониторинг процессов с помощью 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, но запускается не в определенное пользователем время, а когда система сама решит, что загрузка позволяет ей запустить дополнительные процессы.