НАИМЕНОВАНИЕ

init - Родитель для всех процессов


ОПИСАНИЕ

Превая программа запускаемая в MINIX 3 это init. Операции
выполняемые init могут быть коротко изложены в этой псведо
shell програме:

# Открыть 0, 1, 2.
exec </dev/null >/dev/log 2>&1

# Запустить скрипт инициализации системы.
sh /etc/rc $bootopts

/etc/utmp

echo reboot >>/usr/adm/wtmp

while :; do
# Подождать пока процес не будет завершен,
# но не блокировать.
wait

# Запись logout. (Не этим способом конечно.)
if "pid is in my tables" $pid
then
echo "logout $pid" >/etc/utmp
echo "logout $pid" >>/usr/adm/wtmp
fi

# Запускаем новую сесию.
while read line type getty init
do
if idle $line
then
$init ... <$tty >$tty
$getty <$tty >$tty 2>&1 &
pid=$!
"add pid to tables" $pid
echo "login $line $pid" >/etc/utmp
echo "login $line $pid" >>/usr/adm/wtmp
fi
done < /dev/ttytab
done

Первое действие выполняемое init - запуск /etc/rc для
инициализации системы как определено в boot(8). Затем
init входит в свой главный цикл, в котором ожидает
завершения процессов, и запуска процесов на доступных
терминалах. Файл /etc/ttytab содержит список терминальных
устройств, их типов, програм для запуска на них чтобы
разрешить логин (обычно getty(8)), и програмы для
запуска первой инициализационной строки (обычно stty(1)).
Эти поля могут быть опущены чтобы показать что линия
отключена или инициализация не необходима. Поиск команд
осуществляется по пути /sbin:/bin:/usr/sbin:/usr/bin.

init принемает некоторые сигналы, которые должны передавать
id процесса 1. (Это первый процесс, поэтому его id=1). Сигналы
могут быть следующими:

SIGHUP
При получении сигнала отбоя, Init забудет об ошибках
и пересканирует ttytab для запущеных процессов. Init
как правило пересканирует ttytab каждый раз когда он чуствует
необходимость respawn процесс, так что сигнал отбоя
нужен только если линия была закрыта, или после сигнала
terminate. Обратите внимание что после отключения линии
вам будет необходимо убить процсее на этой линии вручную,
init не сделает это за вас.

SIGTERM
Как правило посылается програмами которые останавливают или
перезапускают MINIX 3. Заставляет init воздержаться от
порождения новых.

SIGABRT
Посылается драйвером клавиатуры когда комбинация
CTRL-ALT-DEL определена. Заставляет Init начать процесс
завершения. Второй сигнал позволяет остановить инициализацию
в момент поступления вызова. Третий сигнал отключит
систему без синхронизации.

MINIX 3 против Minix-vmd
Есть некоторые отличия в запуске init между стандартной Minix 3
и Minix-vmd. Файл /etc/rc выводит информацию в /dev/console а
Minix-vmd в /dev/null. Это означает что под Minix-vmd если
процессы нуждаются в пользовательских действиях, они должны
подключаться к /dev/console через intr(8). Minix-vmd передает
значение загрузочной переменной bootopts в /etc/rc. Стандартный
Minix 3 нет.

Файлы

/etc/ttytab Список терминальных устройств.

/etc/utmp Список пользователей залогиненых в системе.

/usr/adm/wtmp История Login/logout.



СМОТРЕТЬ ТАКЖЕ

ttytab(5), utmp(5), getty(8), stty(1), boot(8).


АВТОР

Kees J. Bot (kjb@cs.vu.nl)
Перевод Андрей Л. Унгер (cobaltsys@nm.ru)


автохимия оптом и в розницу