mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк 

Златоуст.Ru

 

 

      INIT(1M)                                               INIT(1M)

      НАЗВАНИЕ
              init - инициализация управления процессами

      СИНТАКСИС
	   /etc/init  [0] [1] [2] [3] [4] [5] [6] [S] [s] [Q] [q] [a] [b] [c]

      ОПИСАНИЕ
              Процесс  init  является  главным диспетчером процессов.
              Его основная задача - создание процессов в соответствии
              со  схемой,  хранящейся  в  файле   /etc/inittab   [см.
              inittab(4)]. Схема обычно предписывает запуск процессов
              getty  для всех терминальных линий, посредством которых
              пользователи могут войти в систему. Init также  контро-
              лирует  работу  автономных процессов, требующихся конк-
              ретной системе.

              С  точки  зрения  процесса  init система в любой момент
              времени находится на  определенном  уровне  выполнения.
              Уровень_выполнения  может рассматриваться как программ-
              ная конфигурация системы,  причем  каждая  конфигурация
              допускает существование только определенной группы про-
              цессов.  Процессы, запускаемые init'ом на каждом уровне
              выполнения, описаны в файле  inittab.  Возможны  восемь
              уровней  выполнения: от 0 до 6, S и s. Уровень выполне-
              ния изменяется  при  запуске  init'а  привилегированным
              пользователем.  Запущенный  пользователем init посылает
              соответствующие сигналы исходному  процессу init,  соз-
              данному  при  перезагрузке  системы,  сообщая, на какой
              уровень выполнения надо перейти.

              Процесс init запускается в рамках системы  UNIX  в  ка-
              честве последнего шага процедуры загрузки. Сначала init
              ищет  в  файле  /etc/inittab  строку  initdefault  [см.
              inittab(4)]. Если таковая имеется, то  init  использует
              ее  для определения начального значения уровня выполне-
              ния. Если такой строки нет, то init запрашивает началь-
              ное значение уровня  выполнения  у  пользователя  через
              виртуальную  системную консоль, /dev/syscon. Если в от-
              вет вводится буква S или s, init переходит в  однополь-
              зовательский режим (SINGLE USER). Это единственный уро-
              вень  выполнения,  который  не  требует наличия заранее
              подготовленного файла /etc/inittab. Иными словами, если
              файл inittab не существует, то допускается работа толь-
              ко в однопользовательском режиме. При этом  виртуальная
              консоль  открывается  на чтение и запись и сразу же вы-
              полняется команда /bin/su -root. Для  выхода  из  одно-
              пользовательского режима следует использовать init, так
              как  при  завершении shell'а по концу файла init только
              переинициализирует однопользовательский режим.

              Если  во  время  загрузки виртуальная системная консоль
              (/dev/syscon) связана не с  физической  системной  кон-
              солью, подключенной к процессору (/dev/console), то при
              запросе нового уровня выполнения процесс init может по-
              терпеть неудачу.

              В ответ на вопрос о новом уровне выполнения можно ввес-
              ти только одну из цифр от 0 до 6 либо буквы  S  или  s.
              Любой другой ответ будет отвергнут и вопрос будет задан
              вновь.

              При  вводе  S или s init действует как описано выше для
              однопользовательского режима и, кроме  того,  связывает
              /dev/syscon с терминалом пользователя, делая его вирту-
              альной  системной консолью. На физическую консоль /dev/
              console выводится сообщение о переназначении  виртуаль-
              ной консоли.

              При первом запуске init'а и при каждом переходе из  од-
              нопользовательского  режима  на другой уровень выполне-
              ния, init устанавливает характеристики виртуальной кон-
              соли, /dev/syscon, с помощью вызова ioctl(2),  в  соот-
              ветствии с хранящимися в файле /etc/ioctl.syscon харак-
              теристиками.  Этот файл записывается процессом init при
              переходе в однопользовательский режим.

              Если в качестве ответа введена цифра от 0 до 6, то init
              устанавливает соответствующий уровень выполнения.

              Если init впервые перешел на уровень выполнения, отлич-
              ный  от  однопользовательского, то сначала файл inittab
              просматривается в поисках строк, где в качестве  дейст-
              вия  указаны boot или bootwait. Процессы, соответствую-
              щие этим строкам, запускаются перед  какой-либо  другой
              обработкой  inittab  при условии, что введенный уровень
              выполнения совпадает с указанным в строке. Таким  обра-
              зом,  перед тем, как пользователи получат доступ к сис-
              теме, могут быть произведены некоторые начальные дейст-
              вия, такие, например, как монтирование файловых систем.
              Затем в файле inittab ищутся все строки, которые должны
              быть обработаны на данном уровне выполнения.

              Уровень  выполнения  2  определяется как содержащий все
              процессы для терминалов и демоны, которые должны  рабо-
              тать  в многопользовательском окружении, поэтому данный
              режим называют многопользовательским (MULTI-USER).

              Уровень выполнения 3 предназначен для работы с системой
              разделения  удаленных  файлов.  Он является расширением
              многопользовательского режима.

              Уровень выполнения 4 можно определить как некий  допол-
              нительный  многопользовательский  режим; он не является
              необходимым для работы системы и обычно не  использует-
              ся.

              Можно запустить init, указав в качестве аргумента  один
              из  псевдоуровней a, b или c. Реальный уровень выполне-
              ния при этом не изменяется, а в смысле порождения  про-
              цессов  псевдоуровни  не отличаются от реальных. Обычно
              псевдоуровни используют для выполнения группы команд.

              Для многопользовательского режима файл  inittab  подго-
              тавливается таким образом, чтобы init создавал  процесс
              для каждого пользовательского терминала.

              Каждый  процесс  shell, запущенный с терминала, в конце
              концов будет завершен либо из-за получения символа кон-
              ца файла, либо из-за освобождения линии. Когда init по-
              лучает сигнал, о том, что запущенный им процесс  завер-
              шен,  он  записывает  этот  факт и причину завершения в
              файлы /etc/utmp и /etc/wtmp, если последний  существует
              [см.  who(1)].  История процессов, запускаемых init'ом,
              хранится в файле /etc/wtmp.

              Для запуска процессов, упомянутых в файле inittab, init
              читает весь файл и для каждой строки, процесс в которой
              требует перезапуска, порождается потомок. После запуска
              всех  процессов, указанных в файле inittab, init ожида-
              ет, пока либо один из его потомков завершится, либо бу-
              дет получен сигнал об ошибке питания, либо  порожденный
              пользователем  init предпишет изменить уровень выполне-
              ния. Когда одно из перечисленных условий становится ис-
              тинным, init вновь просматривает файл  inittab.  Добав-
              лять  строки в файл inittab можно в любое время, однако
              init все равно будет ожидать одно из трех вышеуказанных
              событий. Чтобы  заставить  init  немедленно  обработать
              файл  inittab,  его  следует разбудить командами init Q
              или init q.

              Если init получает сигнал об ошибке  питания  (SIGPWR),
              он  просматривает файл inittab в поисках строк с дейст-
              виями powerfail и powerwait. Соответствующие этим стро-
              кам процессы (если позволяет уровень выполнения)  будут
              выполнены  в  первую очередь. Таким образом, init может
              выполнять различные  процедуры  при  завершении  работы
              операционной системы. Заметим, что в однопользовательс-
              ком режиме выполняются только строки powerfail и power-
              wait.

              Если  процессом init получен запрос на изменение уровня
              выполнения, он посылает  сигнал-предупреждение  SIGTERM
              всем процессам, которые не должны работать на требуемом
              уровне выполнения. Затем, выждав 5 секунд, init уничто-
              жает их сигналом SIGKILL.

              Для  формирования  подразумеваемого окружения процессов
              init читает файл /etc/TIMEZONE.

      ФАЙЛЫ
              /etc/inittab
              /etc/utmp
              /etc/wtmp
              /etc/TIMEZONE
              /dev/console
              /dev/syscon
              /etc/ioctl.syscon

      СМ. ТАКЖЕ
              getty(1M), termio(7).
              login(1), sh(1), who(1) в Справочнике пользователя.
              kill(2), inittab(4), utmp(4) в Справочнике  программис-
              та.

      ДИАГНОСТИКА
              Если init обнаружит, что действия, связанные  с  какой
              либо  строкой  из /etc/inittab, были выполнены более 10
              раз за 2 минуты, он делает вывод,  что  в  этой  строке
              имеется  ошибка,  и  выдает сообщение на системную кон-
              соль.  Затем  он игнорирует строку с ошибкой, пока либо
              не пройдет пять минут, либо не придет сигнал  от  запу-
              щенного  пользователем init'а. Это предохраняет init от
              пожирания системных ресурсов, как  в  случае  описки  в
              файле  inittab,  так  и в случае неосторожного удаления
              программы, упомянутой в /etc/inittab.



 

 

Бернадинер Марк Абрамович

Мое резюме

Компьютерная страничка

Ресурсы сети

Фотоальбом

 

 

 

mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк