Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

UID PID PPID c stime tty TIME CMD




Средства наблюдения за процессами

 

Для наблюдения за активными процессами пользователь должен ввести команду ps (process status). Команда ps, введенная без аргументов, показывает все пользовательские процессы, которые были запущены в течение текущей сессии. Утилита ps отличается большим количеством аргументов, в том числе дублирующих друг друга. Утилита ps в ОС Linux поддерживает опции в трёх разных стилях: UNIX (могут быть сгруппированы и должны иметь перед собой дефис), BSD (могут быть сгруппированы и не нуждаются в дефисе) и GNU с длинными опциями (опции записываются словом и должны иметь перед собой два дефиса). Хотя буквы в первых двух стилях могут использоваться одинаковые, выполнять они могут разные функции. Утилита читает и выводит информацию о процессах из виртуальной файловой системы /proc.

На рис. 2.2 изображен выборочный список процессов, полученный с помощью команды ps –ef. Опция –e отображает все процессы, -f – означает подробный вывод данных.

root 1 0 0 20:48? 00:00:01 init [3]

root 2 0 0 20:48? 00:00:00 [kthreadd]

root 5 2 0 20:48? 00:00:00 [watchdog/0]

root 9 2 0 20:48? 00:00:00 [events/0]

root 1370 2 0 20:48? 00:00:00 [kjournald]

root 3060 1 0 20:49? 00:00:00 /usr/sbin/syslogd

root 3190 1 0 20:49? 00:00:00 /usr/sbin/sshd

root 4439 1 0 20:59 tty1 00:00:00 -bash

root 5672 5671 0 21:22 pts/1 00:00:00 -bash

root 5771 5770 0 21:23 pts/3 00:00:00 -bash

root 5804 5672 0 21:24 pts/1 00:00:03 top

ivanov 6188 1 92 21:32? 00:34:19 cat /dev/zero

root 7392 7391 0 21:58 pts/4 00:00:00 -bash

root 7550 7392 64 22:01 pts/4 00:05:00 /root/no 12345

root 7578 7392 53 22:02 pts/4 00:03:48 yes 12345

petrov 7768 1 49 22:06? 00:01:40 od /dev/zero

root 7924 7392 0 22:09 pts/4 00:00:00 ps -ef

Рис. 2.2. Фрагмент таблицы процессов, выводимой командой ps -ef

 

Подробная таблица процессов может содержать следующий набор параметров:

· PID – идентификатор процесса;

· PPID – идентификатор «родительского» процесса;

· TTY – терминал, из которого был запущен пользовательский процесс;

· UID – идентификатор пользователя, запустившего процесс;

· 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

Tasks: 124 total, 5 running, 119 sleeping, 0 stopped, 0 zombie

Cpu(s): 22.0%us, 16.3%sy, 0.0%ni, 61.1%id, 0.5%wa, 0.1%hi, 0.1%si, 0.0%st

Mem: 2030288k total, 463752k used, 1566536k free, 24892k buffers

Swap: 2168732k total, 0k used, 2168732k free, 250904k cached

 

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

7550 petrov 20 0 1980 672 504 R 50 0.0 7:08.37 no

7578 ivanov 20 0 1980 676 504 R 50 0.0 5:56.62 yes

7768 root 20 0 2004 756 576 R 50 0.0 3:48.28 od

6188 root 20 0 1996 676 504 R 48 0.0 36:27.97 cat

1 root 20 0 772 300 260 S 0 0.0 0:01.44 init

2 root 15 -5 0 0 0 S 0 0.0 0:00.00 kthreadd

3 root RT -5 0 0 0 S 0 0.0 0:00.00 migration/0

4 root 15 -5 0 0 0 S 0 0.0 0:00.06 ksoftirqd/0

5 root RT -5 0 0 0 S 0 0.0 0:00.00 watchdog/0

6 root RT -5 0 0 0 S 0 0.0 0:00.00 migration/1

7 root 15 -5 0 0 0 S 0 0.0 0:00.08 ksoftirqd/1

8 root RT -5 0 0 0 S 0 0.0 0:00.00 watchdog/1

9 root 15 -5 0 0 0 S 0 0.0 0:00.04 events/0

10 root 15 -5 0 0 0 S 0 0.0 0:00.04 events/1

11 root 15 -5 0 0 0 S 0 0.0 0:00.02 khelper

3060 root 20 0 1748 616 524 S 0 0.0 0:00.00 syslogd

3064 root 20 0 1704 420 352 S 0 0.0 0:00.00 klogd

3190 root 20 0 3928 956 668 S 0 0.0 0:00.00 sshd

3284 root 20 0 1912 640 540 S 0 0.0 0:00.00 crond

3286 daemon 20 0 1912 416 316 S 0 0.0 0:00.00 atd

3330 root 20 0 1920 488 412 S 0 0.0 0:00.08 gpm

4589 root 20 0 2780 1364 1024 S 0 0.1 0:00.00 startx

4605 root 20 0 2764 792 656 S 0 0.0 0:00.00 xinit

4606 root 19 -1 337m 10m 3820 S 0 0.5 0:38.96 X

4639 root 20 0 2760 1304 984 S 0 0.1 0:00.00 sh

5672 root 20 0 3132 1752 1228 S 0 0.1 0:00.00 bash

123 root 20 0 2340 1004 752 R 0 0.0 0:00.00 top

 

Рис. 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 контролируемого процесса. Нужный процесс можно указать и по имени:




Поделиться с друзьями:


Дата добавления: 2015-03-31; Просмотров: 655; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.