Тема: Сбор сведений о системе и управление процессами.
Время выполнения: 4 часа
Теоретический материал:
В данном сценарии изучаются команды, предоставляющие сведения о системе.
Начальные условия: Командная строка после входа в систему.
Определить имя текущей UNIX-системы с помощью команды uname -a
user@desktop ~ $ uname -a
Linux thinkpad 2.6.13-gentoo-r4 #1 Mon Oct 17 12:09:36 MSD 2005 i686 Intel(R)...
Здесь выводится полная версия системы, дата компиляции ядра и тип процессора.
Вывести
содержимое каталога proc
с помощью команды ls /proc:
user@desktop ~ $ ls /proc
1/ 7/ 8113/ 8209/ 9073/ dri/ modules
103/ 7060/ 8124/ 8211/ 9324/ driver/ mounts@
106/ 7128/ 8125/ 8213/ 9325/ execdomains mtrr
185/ 7693/ 8131/ 8215/ 937/ fb net/
186/ 7770/ 8135/ 8319/ 9376/ fb1/ partitions
...
Признаком
операционной системы Linux является наличие каталога /proc
, которая содержит
псевдофайлы, предоставляющие системную информацию и позволяющие настраивать
ядро.
Вывести текущие пользовательские сеансы с помощью команды who:
user@desktop ~ $ who
user tty1 2005-10-24 13:17
user pts/0 2005-10-24 13:19
user pts/2 2005-10-24 23:59
Вывести список всех примонтированных устройств с помощью команды mount:
user@desktop ~ $ mount
/dev/hda6 on / type reiserfs (rw,noatime)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
udev on /dev type tmpfs (rw,nosuid)
devpts on /dev/pts type devpts (rw)
/dev/hda1 on /mnt/win type ntfs (ro,uid=1000,gid=100,nls=utf8)
Первый столбец — имя устройства, второй — точка монтирования, далее следует тип файловой системы и опции монтирования.
Вывести загруженность примонтированных дисков с помощью команды df -h:
user@desktop ~ $ df -h
Файловая система Разм Исп Дост Исп% смонтирована на
/dev/hda6 24G 21G 3,4G 86% /
udev 251M 180K 251M 1% /dev
/dev/hda1 9,4G 7,7G 1,7G 83% /mnt/win
none 251M 0 251M 0% /dev/shm
Вывести информацию о всех выполняющихся процессах с помощью команды ps aux:
user@desktop ~ $ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 1432 480 ? S 13:16 0:01 init [3]
root 2 0.0 0.0 0 0 ? SN 13:16 0:00 [ksoftirqd/0]
root 3 0.0 0.0 0 0 ? S< 13:16 0:00 [events/0]
..
user 8456 0.3 4.4 34932 22944 ? S 13:24 2:15 emacs
user 22537 0.0 0.3 3720 1560 pts/3 Ss 22:37 0:00 /bin/bash
user 8839 0.0 0.1 2644 932 pts/3 R+ 23:01 0:00 ps aux
Оставить в выводе предыдущей команды только системные процессы с помощью команды ps aux | grep -v user:
user@desktop ~ $ ps aux | grep -v user
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 1432 480 ? S 13:16 0:01 init [3]
root 2 0.0 0.0 0 0 ? SN 13:16 0:00 [ksoftirqd/0]
root 3 0.0 0.0 0 0 ? S< 13:16 0:00 [events/0]
...
root 6989 0.0 0.1 1672 704 ? Ss Oct25 0:00 /usr/sbin/syslog
root 7128 0.0 0.1 2020 716 ? Ss Oct25 0:00 /usr/sbin/fcron
Часть процессов, показанные в квадратных скобках, — это потоки ядра, исполняющие специальные функции. Можно выделить демонов — в столбце терминала они имеют символ «?». Например, системный журнал (syslog) или планировщик задач (cron).
Вывести иерархию процессов с помощью команды pstree:
user@desktop ~ $ pstree
init─┬─acpid
├─5*[agetty]
├─2*[artsd]
├─cpufreqd
├─dcopserver
├─events/0
├─fcron
├─gconfd-2
├─hcid
├─kaccess
├─kded───kded───kded
├─kdeinit─┬─artsd───artsd───artsd
│ ├─kio_file
│ ├─kio_imap4───kio_imap4
...
В вершине дерева стоит процесс init.
Рассмотреть поведение процессов интерактивно с помощью команды top.
В данном сценарии рассматриваются демоны как процессы, не связанные ни с одним терминалом.
Начальные условия: Командная строка после входа в систему.
Если запустить команду в фоновом режиме и выйти из командной оболочки: например, find / -name "*.html" -exec grep -Hn "linux loader" \{} \; & и exit, то запущенная команда завершится по сигналу SIGHUP.
user@desktop ~ $ find / -name "*.html" -exec grep -Hn "linux loader"
\{} \; &
[1] 9555
user@desktop ~ $ exit
Для того, чтобы программы неполучали сигнал SIGHUP, используется специальная команда nohup: nohup find / -name "*.txt" -exec grep -Hn "linux loader" \{} \; &
user@desktop ~ $ nohup find / -name "*.html" -exec grep -Hn "linux loader" \{} >> result\; &
[1] 9783
user@desktop ~ $ exit
Эта программа завершится корректно после окончания поиска.
В данном сценарии изучается механизм приоритетов UNIX и команды для изменения приоритетов запускаемых процессов.
Начальные условия: Командная строка после входа в систему.
Каждый процесс в системе имеет свой уровень приоритета (в UNIX он называется «nice»), который можно увидеть с помощью команды ps –l — в столбце «NI».
user@desktop ~ $ ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 1000 17223 17222 0 75 0 - 994 wait pts/1 00:00:00 bash
0 R 1000 17485 17223 0 75 0 - 612 - pts/1 00:00:00 ps
По умолчанию, приоритет процессов простого пользователя равен нулю.
Для запуска процесса с заданным приоритетом воспользуемся командой nice. Например, запустим создание архива с пониженным приоритетом: nice -n 10 tar -cjf libraries.tar.bz2 /usr/lib/.
user@desktop ~ $ nice -n 10 tar -cjf libraries.tar.bz2 /usr/lib/
Чтобы изменить приоритет уже запущенной программы используется команда renice. Например, для понижения приоритета заранее запущенного процесса архивации tar -cjf libraries.tar.bz2 /usr/lib & воспользуемся командой renice +10 -p 3442:
user@desktop ~ $ tar -cjf libraries.tar.bz2 /usr/lib &
[1] 3442
user@desktop ~ $ renice +10 -p 3442
Простые пользователи не могут повышать приоритет процессов, только понижать.
1) Сравните время создания корневого каталога с текущим временем системы.
2) Получите список всех типов файловых систем, примонтированных в настоящий момент.
3) Найдите три процесса, использующих самый большой объём памяти. Какой процент памяти они потребляют от общего объёма?
4) Получите иерархию родительских процессов для текущей командной оболочки.
5) Найдите, в каком файле в каталоге /proc хранится информация о системной памяти.
6) С помощью сигнала остановки процесса и команды bg запустите три параллельных процесса архивации каталога /etc, /home и /tmp.
1. Что рассматривает сценарий изменения приоритетов?
2. Что рассматривает сценарий запуска демонов?
3. Какой тип имеет корневая файловая система?
Скачано с www.znanio.ru
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.