Для наблюдения за активными процессами пользователь должен ввести команду ps (process status). Команда ps, введенная без аргументов, показывает все пользовательские процессы, которые были запущены в течение текущей сессии. Утилита ps отличается большим количеством аргументов, в том числе дублирующих друг друга. Утилита ps в ОС Linux поддерживает опции в трёх разных стилях: UNIX (могут быть сгруппированы и должны иметь перед собой дефис), BSD (могут быть сгруппированы и не нуждаются в дефисе) и GNU с длинными опциями (опции записываются словом и должны иметь перед собой два дефиса). Хотя буквы в первых двух стилях могут использоваться одинаковые, выполнять они могут разные функции. Утилита читает и выводит информацию о процессах из виртуальной файловой системы /proc.
На рис. 2.2 изображен выборочный список процессов, полученный с помощью команды ps –ef. Опция –e отображает все процессы, -f – означает подробный вывод данных.
· CMD – команда, которая была введена для запуска процесса;
· PRI – текущий динамический приоритет процесса;
· NI – относительный приоритет процесса;
· TIME – суммарное время выполнения процесса;
· STAT – состояние процесса.
Столбец STAT (иногда он обозначается одним символом S) может содержать следующие значения:
· R (Runnable) – процесс выполняется или готов к выполнению (состояние готовности);
· D (Delay) – процесс пребывает в состоянии задержки, например, в ожидании дисковой операции;
· T (Traced or Stopped) – процесс остановлен или трассируется отладчиком;
· S (Sleeping) – процесс ожидает наступления какого-либо события. Такое состояние характерно для демонов;
· Z (Zombied) – процесс-зомби;
· < – процесс с отрицательным значением фактора уступчивости nice;
· N – процесс с положительным значением nice.
Вопросительный знак в столбце имени терминала TTY указывает на то, что процесс был запущен еще при загрузке системы либо это фоновый процесс, который продолжает выполняться после завершения пользовательского сеанса.
Можно выборочно вывести параметры, которые интересуют наблюдателя. Делается это с помощью команды
ps –e –o uid,ppid,pid,tty,time,stat,cmd
После опции –o в нужной последовательности указываются требуемые столбцы таблицы.
Наблюдение за процессами в динамическом режиме можно организовать с использованием утилиты top (рис. 2.3).
top - 22:13:40 up 1:25, 5 users, load average: 3.99, 3.59, 2.38
Рис. 2.3. Фрагмент таблицы процессов, выводимой командой top
Утилиту назвали top потому, что процессы, наиболее активно использующие процессорное время, будут находиться вверху (top – верх). Любопытное наблюдение – при отсутствии «прожорливых» процессов сам top может возглавлять список приоритетных задач. Это вполне объяснимо – этой программе необходимо опрашивать состояние системы с периодичностью в несколько секунд, что ощутимо нагружает центральный процессор (периодичность – причина того, что в приведенном примере «снимок» зафиксировал процесс top в числе наименее затратных процессов).
В заголовке утилита top выводит обобщенную информацию о пользователях, запущенных процессах и их состоянии, расходовании процессорного времени, а также расходе памяти – оперативной и виртуальной.
Поля, выводимые программой top
· PID — идентификатор процесса;
· USER — имя пользователя – владельца процесса;
· PRI — приоритет процесса;
· SIZE — размер памяти процесса в килобайтах (Кб), включая области кода, данных и стека;
· RSS — общий объем памяти, выделенной процессу (Кб);
· STAT — текущее состояние процесса;
· %CPU — процентная доля процессорного времени, выделенного на процесс с момента предыдущего обновления;
· %MEM — процентная доля памяти, выделенной процессу с момента предыдущего обновления;
· TIME — общее процессорное время, израсходованное процессом с момента его запуска;
· COMMAND — имя исполняемого файла.
Утилита выводит информацию о наиболее активных процессах, а поскольку их активность непостоянна, то выводимая таблица обновляется по умолчанию каждые две секунды. Программа работает в интерактивном режиме и управляется с клавиатуры. Например, при обнаружении процесса, активность которого представляет опасность для системы, его можно сразу удалить. Для этого следует нажать клавишу с первым символом соответствующей команды k – kill, а после запросов программы поочередно указать идентификатор процесса и номер посылаемого сигнала. Опция u позволит указать имя пользователя или его UID и наблюдать только за процессами, владельцем которых является этот UID. Нажатие символа h позволит вывести справку по интерактивным командам.
Вывод информации в файл производится командой
top -n 1 -b > /tmp/top.out,
где b – выводить информацию в текстовом формате;
n – количество повторов.
Можно упомянуть еще несколько полезных утилит, используемых для наблюдения за процессами. Часто интерес предсталяют не только сами процессы, но и связанные с ними субъекты и объекты. Для отслеживания подобных связей неоценимую помощь может оказать утилита lsof (list open files). Она отображает список всех открытых файлов, директорий, библиотек, сокетов и устройств, связанных с заданным процессом.
Например, администратор обратил внимание на подозрительный процесс и желает узнать, с какими файлами тот работает. Эти данные выводятся с помощью команды
lsof -p 3245,
где после аргумента -p указывается PID контролируемого процесса. Нужный процесс можно указать и по имени:
Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет
studopedia.su - Студопедия (2013 - 2025) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав!Последнее добавление