Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Вопрос 33.1. Уровни выполнения в ОС Unix. Процесс init (/etc/inittab). Переходы между уровнями
Уровни выполнения Unix-система имеет несколько режимов работы (уровней выполнения), которые обозначаются номерами с 0 по 6, и однопользовательский режим, обозначаемый буквами s и S. Уровень выполнения может рассматриваться как программная конфигурация системы, причем каждая конфигурация допускает существование только определенной группы процессов. При включении питания система начинает работать в режиме, заданном по умолчанию. Например, режим 0 √ это режим выключения питания. Режим 6 останавливает систему и перезагружает ее. Остальные режимы отражают направления использования системы. В частности, режим 1 √ это административный режим, в котором доступ предоставляется только привилегированному пользователю. Он позволяет системному администратору выполнять необходимые операции без помех со стороны других пользователей. Режим s √ это однопользовательский режим, который позволяет работать в системе только одному пользователю. Режим 2 √ частичный многопользовательский режим, предоставляющий доступ к системе нескольким пользователям но без права доступа их к сетевым файловым системам. Режим 3 √ это многопользовательский режим, в котором разрешается доступ к NFS. Режим по умолчанию можно изменить, откорректировав файл /etc/inittab и изменив в нем запись init. Описание всех уровней выполнения сведены в следующую таблицу:
Процесс Init. Процесс init является главным диспетчером процессов. Его основная задача - создание процессов в соответствии со схемой, хранящейся в файле /etc/inittab. Init также контролирует работу автономных процессов, требующихся конкретной системе. Процесс init запускается в рамках системы UNIX в качестве последнего шага процедуры загрузки. Сначала init ищет в файле /etc/inittab строку initdefault. Если таковая имеется, то init использует ее для определения начального значения уровня выполнения. Если такой строки нет, то init запрашивает начальное значение уровня выполнения у пользователя через виртуальную системную консоль. В ответ на этот вопрос можно ввести только одну из цифр от 0 до 6 либо буквы S или s. Любой другой ответ будет отвергнут и вопрос будет задан вновь. Если в качестве ответа введена цифра от 0 до 6, то init устанавливает соответствующий уровень выполнения. Если в ответ вводится буква S или s, init переходит в однопользовательский режим. Это единственный уровень выполнения, который не требует наличия заранее подготовленного файла /etc/inittab. Для запуска процессов, упомянутых в файле /etc/inittab, init читает весь файл и для каждой строки, процесс в которой требует перезапуска, порождается потомок. После запуска всех процессов, указанных в файле /etc/inittab, init ожидает, пока либо один из его потомков завершится, либо будет получен сигнал об ошибке питания, либо порожденный пользователем init предпишет изменить уровень выполнения. Когда одно из перечисленных условий становится истинным, init вновь просматривает файл /etc/inittab. Добавлять строки в файл /etc/inittab можно в любое время, однако init все равно будет ожидать одно из трех вышеуказанных событий. Чтобы заставить init немедленно обработать файл /etc/inittab, его следует разбудить командами init Q или init q. Независимо от того, в каком режиме начинается работа, с помощью комады init можно переходить из одного режима в другой. Уровень выполнения изменяется при запуске init'а привилегированным пользователем. Запущенный пользователем init посылает соответствующие сигналы исходному процессу init, созданному при перезагрузке системы, сообщая, на какой уровень выполнения надо перейти. Если режим по умолчанию √ 2, система запускается в режиме 2, после чего командой init 3 ее можно переключить в режим 3. В следующем примере показано, как команда init переводит систему в однопользовательский режим. # init s Можно запустить init, указав в качестве аргумента один из псевдоуровней a, b или c. Реальный уровень выполнения при этом не изменяется, а в смысле порождения процессов псевдоуровни не отличаются от реальных. Обычно псевдоуровни используют для выполнения группы команд. Если процессом init получен запрос на изменение уровня выполнения, он посылает сигнал - предупреждение SIGTERM всем процессам, которые не должны работать на требуемом уровне выполнения. Затем, выждав 5 секунд, init уничтожает их сигналом SIGKILL. Date: 2016-08-30; view: 388; Нарушение авторских прав |