Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1_ОСС_Методичка___.docx
Скачиваний:
38
Добавлен:
19.05.2015
Размер:
13.86 Mб
Скачать

3 Методические указания

Когда загружается Ubunt, вы видите текстовые сообщения, которые бегут по экрану, подробно показывая, что конкретно делает Ubuntu. Среди этого есть ряд сервисов, которые Ubuntu запускает во время загрузки, например, сервис планирования заданий cron, системный журнал, а также графический менеджер входа в систему. Если у вас в системе установлены другие сервисы, например, веб-сервер, то эти сервисы также будут запускаться во время загрузки. Впрочем, иногда вам может потребоваться остановить или временно отключить сервисы и в Ubuntu. Есть ряд способов сделать это, причем как в графическом режиме, так и из командной строки. Здесь показаны некоторые наиболее распространенные способы управления запуском сервисов.

Прежде, чем научиться запускать, останавливать и отключать сервисы из командной строки, очень важно понять процесс запуска Ubuntu и того, как в Ubuntu определяется, какие программы следует запускать при запуске системы. В большинстве дистрибутивов Linux (в том числе и в Ubuntu) с помощью скриптов инициализации в стиле UNIX System V определяется, какие программы при загрузке системы запускать, а какие - нет. Все скрипты, которые могут быть потенциально запущены при загрузке системы, как правило, располагаются в Ubuntu в директории /etc/init.d/. Однако не каждый скрипт, находящийся в директории /etc/init.d/ будет запущен во время загрузки системы. В Linux запуск этих скриптов организуется в соответствие с так называемыми уровнями запуска или runlevel; в большинстве систем Linux имеется 7 уровней - с 0 по 6. Считайте, что runlevel является специальным списком программ, которые Ubuntu должна запустить прежде, чем предоставит вам вход в систему.

В системе Linux за некоторыми из этих уровней runlevel закреплены специальные состояния:

Runlevel 0

Остановка системы.

Runlevel 1

Устанавливается однопользовательский режим.

Runlevels 2-5

Устанавливаются различные варианты многопользовательского режима. Но, как правило, по умолчанию из них используется один или два варианта.

Runlevel 6

Перезагрузка системы.

Для каждого уровня запуска есть директорий, в котором хранятся символические ссылки на определенные скрипты, находящиеся в /etc/init.d, которые будут запускаться при выборе этого конкретного уровня запуска и будут останавливается при выходе из него. В Ubuntu эти символические ссылки помещаются в директорий /etc/rc.d, например, все скрипты уровня запуска 2 находятся в директории /etc/rc2.d/.

Если вы посмотрите на один из этих директориев уровней запуска, вы увидите, что многие из символических ссылок на скрипты в /etc/init.d имеют странные имена, которые начинаются с символов S, K или D, затем - число и, только потом, имя скрипта. В Ubuntu по умолчанию устанавливается уровень запуска 2, поэтому приведем ниже пример директория /etc/rc2.d:

Как видите, в этом директории масса символических ссылок, которые указывают на скрипты в директории init.d. Буква в начале каждого файла сообщает процессу init, когда выполнять этот скрипт. Если скрипт начинается с буквы S, то init запустит это скрипт при переходе на этот уровень запуска. Если скрипт начинается с буквы K, то init останавливает сервис (K от команды kill - убить), когда происходит переход на другой уровень запуска. Если скрипт начинается с буквы D, то этот скрипт будет отключен на некоторое время и процесс init проигнорирует его. Процесс init запускает скрипты в порядке следования номеров, используемых в именах символических ссылок, так что вы будете знать, в каком порядке будут запускаться скрипты. Это удобно в случаях, когда нужно обеспечить, чтобы некоторые сервисы запускались тольк после того, как будут запущены сервисы, от которых они зависят.

Когда Linux загружается и запускается процесс init, этот процесс читает конфигурационные настройки из /etc/inittab, где указаны настройки каждого уровня запуска, определен уровень выполнения, используемый по умолчанию, а также приведены некоторые другие настройки. Затем процесс init загрузит все системные скрипты из специального директория системного уровня запуска /etc/rcS.d. С помощью этих скриптов будут загружены демоны и сервисы, которые жизненно важны в процессе загрузки. Наконец, процесс init запустит в алфавитном порядке все скрипты, соответствующие уровню запуска, используемому по умолчанию.

Вывести иерархию процессов с помощью команды 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.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]