- Linux Certif
- Toute la documentation sur la certification Linux LPI
- Rechercher une page de manuel
- init.d
- Sommaire
- SYNOPSIS
- DESCRIPTION
- Some details
- Команды сопровождения
- НАЗВАНИЕ
- СИНТАКСИС
- ОПИСАНИЕ
- Определение уровня выполнения
- Процесс init и загрузка системы
- Добавление записей в inittab
- Изменения уровня выполнения
- Файл /etc/defaults/init
- АТРИБУТЫ
- ССЫЛКИ
Linux Certif
Toute la documentation sur la certification Linux LPI
Rechercher une page de manuel
init.d
Version: Nov 15, 2000 (openSuse — 09/10/07)
Sommaire
SYNOPSIS
DESCRIPTION
At boot time, the boot level master script /etc/init.d/boot is called to initialise the system (e.g. file system check, . ). It also executes some hardware init scripts linked into /etc/init.d/boot.d/. Then it calls /etc/init.d/boot.local, which executes the local commands.
After system startup, /sbin/init will normally switch on the default run level given in /etc/inittab. It calls the run level master script /etc/init.d/rc to start or stop services provided by the other scripts under /etc/init.d/.
Both scripts, then boot level master script /etc/init.d/boot and the the run level master script /etc/init.d/rc starts all other boot or runlevel scripts either sequential or partial parallel within their dependencies order.
To control the services of a run level, the corresponding scripts are linked into run level directories /etc/init.d/rc .d/, where =0,1,2,3,4,5,6,S is the run level number.
There are two kinds of symbolic link: start links, which are called when entering a run level, and stop links, which are called when leaving a run level. Note that each service in the run levels 2, 3, 4, and 5 consists of a start and a stop link. Within SuSE boot concept a differential link scheme is used to be able to change a runlevel in comparision with the former level.
If parallel executing of the boot scripts is enabled (see /etc/sysconfig/boot variable RUN_PARALLEL) then both master scripts uses the program startpar(8) which starts or stops multiple services in parallel. Startpar(8) will look for the files /etc/init.d/.depend.boot, /etc/init.d/.depend.start, and /etc/init.d/.depend.stop to get the dependencies for each service. The files will be written, beside the symbolic links in the boot and runlevel directories, by the program insserv(8).
To avoid redundant starts when changing run levels, only those services are started which have no start link in the previous run level. And to avoid redundant stops when changing run levels, only those services are stopped which have no start link in the current level. To control this behaviour, the names of the scripts are added on the names of the start and stop links.
To control the order of service starts and stops, the start and stop links include a number in their link name.
The system configuration files in /etc/sysconfig contain most of the variables used to configure the installed services. These variables can easily be changed by YaST or by using an editor. After using an editor, the script /sbin/SuSEconfig must be called to distribute the settings into the system.
Some details
To do this automatically in run level 3, this script is linked into /etc/init.d/rc3.d/ with these two symbolic links
/etc/init.d/rc3.d/S20lpd -> ../lpd and /etc/init.d/rc3.d/K20lpd -> ../lpd
The corresponding link with the letter S is used to start a service. For the printing service the number between the letter S and the name should be greater than the number of the start link of the network service. The corresponding link with the letter K is used to stop a service. The number of the stop link for the printing service should be less than that of the stop link for the network service so that the printer daemon is stopped before shutting down the network service.
Источник
Команды сопровождения
НАЗВАНИЕ
init , telinit — инициализация управления процессами
СИНТАКСИС
ОПИСАНИЕ
init — универсальное средство запуска процессов. Его основная задача — создавать процессы на основе информации, находящейся в файле /etc/inittab .
Определение уровня выполнения
В каждый момент времени система находится на одном из восьми возможных уровней выполнения (run level). Уровень выполнения — это конфигурация программного обеспечения, при которой существует только определенная группа процессов. Процессы, запускаемые процессом init для каждого из этих уровней выполнения, определяются в файле /etc/inittab . Процесс init может работать на одном из восьми уровней выполнения, 0 — 6 , S или s (уровни S и s — идентичны). Уровень выполнения изменяется, когда привилегированный пользователь выполняет процесс /sbin/init . Он посылает соответствующие сигналы исходному процессу init , запущенному операционной системой при загрузке, уведомляющие его о том, на какой уровень выполнения перейти.
Процесс init и загрузка системы
При загрузке системы вызывается процесс init и происходит следующее. Сначала он читает файл /etc/default/init для установки переменных среды. Именно на основе информации из этого файла устанавливается переменная TZ (часовой пояс) и переменные, задающие локаль, например, LANG или LC_CTYPE .
Затем процесс init ищет запись initdefault в файле /etc/inittab (см. inittab(4) ). Если запись initdefault :
существует Процесс init обычно использует уровень выполнения, указанный в этой записи, как начальный уровень, на который надо перейти.
не существует (или не существует файла /etc/inittab) Процесс init просит пользователя ввести уровень выполнения с системной консоли.
Если начальный уровень выполнения:
S или s Процесс init переходит в однопользовательское состояние. В этом состоянии системная консоль (устройство /dev/console ) открывается на чтение и запись, и вызывается команда /sbin/su , (см. su(1M) ). Для изменения уровня выполнения в дальнейшем используйте команду init или telinit . Учтите, что если работа командного интерпретатора будет прекращена (путем ввода символа конца файла), процесс init , при отсутствии файла /etc/inittab переинициализируется только в однопользовательское состояние.
0 — 6 Процесс init переходит на соответствующий уровень выполнения. Уровни выполнения 0, 5 и 6 зарезервированы для остановки системы. Уровни 2, 3 и 4 доступны как варианты многопользовательской работы.
Если это первый, после включения питания, переход процесса init на уровень выполнения, отличный от однопользовательского, процесс init сначала ищет в файле /etc/inittab записи boot и bootwait (см. inittab(4) ). Эти записи выполняются до любой другой обработки файла /etc/inittab , если уровень выполнения, на который выполняется переход, соответствует уровню, указанному в такой записи. Таким образом, любая специфическая инициализация операционной системы, например, монтирование файловых систем, может быть выполнена до того, как в системе зарегистрируются пользователи. Затем процесс init просматривает файл /etc/inittab и выполняет все остальные записи, соответствующие данному уровню выполнения.
Чтобы запустить все процессы в /etc/inittab , процесс init читает записи, и для каждой записи, которую необходимо перезапустить, он порождает дочерний процесс. После порождения всех процессов, указанных в файле /etc/inittab , процесс init ждет, пока не завершит работу один из порожденных им процессов, пока не поступит сигнал powerfail или сигнал от другого процесса init или telinit , требующий изменить уровень выполнения системы. В любом из этих случаев, процесс init перечитывает файл /etc/inittab .
Добавление записей в inittab
Новые записи можно добавлять в файл /etc/inittab в любой момент; однако, процесс init будет ждать наступления одного из перечисленных выше условий, прежде чем перечитывать файл /etc/inittab . Чтобы обойти это, выполните команду init Q или init q , требующую от процесса init немедленно перечитать файл /etc/inittab .
При запуске init в момент начальной загрузки и при любом переходе системы из однопользовательского состояния на другой уровень выполнения, init устанавливает параметры состояния ioctl(2) в режимы, сохраненные в файле /etc/ioctl.syscon . Процесс init записывает данные в этот файл при каждом переходе в однопользовательский режим.
Изменения уровня выполнения
Когда делается запрос на изменение уровня выполнения системы, процесс init посылает предупреждающий сигнал ( SIGTERM ) всем процессам, не определенным на заданном уровне выполнения. Процесс init ждет пять секунд, прежде чем принудительно завершать работу этих процессов посылкой им сигнала SIGKILL .
Когда процесс init получает сигнал о том, что порожденный им процесс прекратил существование, он записывает информацию об этом событии и его причине в файлы /var/adm/utmpx и /var/adm/wtmpx, если они существуют (см. who(1) ). Хронология порождения процессов записывается в файл /var/adm/wtmpx .
Если процесс init получает сигнал о сбое питания ( SIGPWR ), он ищет в файле /etc/inittab специальные записи типа powerfail и powerwait . Соответствующие этим записям процессы запускаются (если позволяет уровень выполнения) перед выполненгием любой дальнейшей обработки. За счет этого процесс init может выполнить необходимые действия по завершению работы операционной системы и записи информации при отключении питания.
Файл /etc/defaults/init
Для перечисленных ниже переменных в файле /etc/default/init можно задать стандартные значения. Например: TZ=US/Pacific
TZ Задает либо информацию о часовом поясе (см. ctime(3C) ), либо имя файла с информацией о часовом поясе /usr/share/lib/zoneinfo .
LC_CTYPE Описательная информация о наборе символов.
LC_MESSAGES Язык сообщений.
LC_MONETARY Информация о форматировании денежных величин.
LC_NUMERIC Информация о форматировании чисел.
LC_TIME Информация о формате времени.
LC_ALL Если значение задано, все остальные переменные среды LC_* его наследуют.
LANG Если значение LC_ALL не задано, и не задано значение некоторой переменной LC_* , вместо него используется значение LANG .
Команда telinit , связанная с /sbin/init , используется для управления действиями init . Она принимает односимвольный аргумент и требует от init выполнить соответствующее действие.
Для управления сеансом init использует модули pam(3PAM) . Правила конфигурирования PAM, перечисленные в файле /etc/pam.conf , задают, какой модуль управления сеансом должен использоваться для init . Вот строка из файла pam.conf , задающая для init использование модуля управления сеансом UNIX.
Если для службы init отдельной записи нет, будет использована запись для службы » other «.
0 | Перейти в режим микропрограммного обеспечения. |
1 | Перевести систему в редим системного администрирования. При этом все локальные файловые системы смонтированы. Работает только небольшой набор сущесвтенных процессов ядра. Этот режим предназначен для решения административных задач, например, установки дополнительных пакетов. Все файлы доступны, и никакие пользователи в системе не зарегистрированы. |
2 | Перевести систему в многопользовательский режим. Запускаются все необходимые для работы многопользовательской среды процессы и демоны. Это сотояние обычно называют многопользовательским . |
3 | Расширить многопользовательский режим, предоставляя доступ по сети к локальным ресурсам. |
4 | Можно определять как альтернативную конфигурацию многопользовательской среды. Этот уровень выполнения не обязателен для работы системы и обычно не используется. |
5 | Остановить машину так, что можно безопасно отключать питание. Если возможно, требует от машины автоматически выключить питание. |
6 | Остановить операционную систему и перезагрузить ее в состояние, задаваемое записью initdefault в файле /etc/inittab . |
a , b , c | Обработать только записи файла /etc/inittab , соответствующие уровню выполнения a , b или c . Это псевдосостояния, которые можно задавать для запуска определенных команд без изменения текущего уровня выполнения. |
Q , q | Перечитать файл /etc/inittab . |
S , s | Перейти в однопользовательский режим. Это единственный уровень выполнения, не требующий наличия файла /etc/inittab соответствующего формата. Если этот файл не существует, по умолчанию, единственным допустимым уровнем выполнения, на который может перейти процесс init является однопользовательский. При работе в однопользовательском режиме будут смонтированы файловые системы, необходимые для выполнения базовых действий в системе. При переходе в однопользовательский режим с более высоого уровня эти файловые системы остаются смонтированными (даже если предоставляются удаленным файловым сервером), и все прочие локальные файловые системы тоже останутся смонтированными. При переходе в однопользовательский режим с более высокого уровня, все процессы, запущенные процессом init или сценариями в каталоге init.d , которые должны работать только в многопользовательском режиме, завершаются (» убиваются «). Кроме того, завершаются все процессы, для которых есть запись utmpx . Это последнее условие гарантирует, что все мониторы портов, запущенные системой SAC, завершаются, как и все службы, запущенные этими мониторами портов, в том числе, службы регистрации ttymon . |
/etc/inittab контролирует управление процессами, которое осуществляет init
/var/adm/utmpx информация о доступе пользователей и администрировании
/var/adm/wtmpx хронология доступа пользователей и администрирования
/dev/console устройство системной консоли
/etc/default/init переменные среды.
АТРИБУТЫ
Описание следующих атрибутов см. на странице справочного руководства attributes(5):
ТИП АТРИБУТА | ЗНАЧЕНИЕ АТРИБУТА |
Доступен в пакете | SUNWcsu |
ССЫЛКИ
Если процесс init обнаруживает, что перезапускает запись из файла /etc/inittab более десяти раз за две минуты, предполагается, что в командной строке этой записи есть ошибка, и об этом выдается сообщение на системную консоль. Затем эта запись больше не будет запускаться повторно,пока не пройдет пять минут или не будет получен сигнал от запущенного пользователем процесса init или telinit . Это предотвращает напрасное использование ресурсов системы процессом init в случае опечатки в файле inittab или удаления программы, на которую ссылается запись в файле /etc/inittab .
Процессы init и telinit может запускать только привилегированный пользователь.
Следует избегать бессистемного использования уровней выполнения S и s в файле /etc/inittab . При изменении этого файла, лучше избегать добавления этого состояния в любые строки, кроме initdefault .
Если стандарное состояние не указано с помощью записи initdefault в файле /etc/inittab , система переходит на уровень 6. Как следствие, система зациклится и будет постоянно перезагружаться.
Если при загрузке системы не удается создать файл utmpx , система загрузиться в состояние » s «, независимо от состояния, указанного в записи initdefault файла /etc/inittab . Это может произойти при недоступности файловой системы /var .
Последнее изменение: 22 февраля 1999 года
Copyleft (no c) 2003 В. Кравчук, OpenXS Initiative, перевод на русский язык
Источник