Linux From Scratch. Версия 6.0
Глава 6. Установка основных системных программ
6.55. Sysvinit-2.85
Пакет Sysvinit содержит программы для контроля загрузки, запуска и
выключения всех других программ.
Расчетное время сборки 0.1 SBU
Требуемое место на диске 0.9 MB
Sysvinit зависит от установки:
Binutils, Coreutils, GCC, Glibc и Make.
6.55.1. Инсталлируем Sysvinit
Sysvinit-2.85 содержит ошибку переполнения буфера. В некоторых случаях это
может привести к изменению значений переменных окружения. Исправим это:
patch -Np1 -i ../sysvinit-2.85-proclen-1.patch
Когда изменяется уровень запуска (например, при выключении системы),
init посылает сигналы TERM и KILL
тем процессам, которые запустил сам init
и которые не должны быть запущены на новом уровне запуска.
Пока проходит этот процесс, init выводит
сообщение, похожее на “Sending processes the TERM
signal”, при этом кажется, что init отсылает эти сигналы всем
работающим процессам. Чтобы не входить в заблуждение, исправим это сообщение
на “Sending processes started by init
the TERM signal”.
sed -i 's@Sending processes@& started by init@g' src/init.c
Компилируем пакет:
make -C src
Устанавливаем пакет:
make -C src install
6.55.2. Настройка Sysvinit
Создадим новый файл /etc/inittab
запуском следующих команд:
cat > /etc/inittab << "EOF"
# Begin /etc/inittab
id:3:initdefault:
si::sysinit:/etc/rc.d/init.d/rc sysinit
l0:0:wait:/etc/rc.d/init.d/rc 0
l1:S1:wait:/etc/rc.d/init.d/rc 1
l2:2:wait:/etc/rc.d/init.d/rc 2
l3:3:wait:/etc/rc.d/init.d/rc 3
l4:4:wait:/etc/rc.d/init.d/rc 4
l5:5:wait:/etc/rc.d/init.d/rc 5
l6:6:wait:/etc/rc.d/init.d/rc 6
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
su:S016:once:/sbin/sulogin
1:2345:respawn:/sbin/agetty -I '\033(K' tty1 9600
2:2345:respawn:/sbin/agetty -I '\033(K' tty2 9600
3:2345:respawn:/sbin/agetty -I '\033(K' tty3 9600
4:2345:respawn:/sbin/agetty -I '\033(K' tty4 9600
5:2345:respawn:/sbin/agetty -I '\033(K' tty5 9600
6:2345:respawn:/sbin/agetty -I '\033(K' tty6 9600
# End /etc/inittab
EOF
Опция -I '\033(K' говорит
agetty послать эту
еscape-последовательность на терминал перед остальными действиями.
Эта еscape-последовательность переключает консольный набор символов на
пользовательский, который может быть изменен запуском программы
setfont. Стартовый скрипт
console из пакета LFS-Bootscripts
вызывает программу setfont
во время загрузки системы. Посылка этой еscape-последовательности
необходима для людей, которые используют не-ISO 8859-1 экранный шрифт,
но это не имеет эффекта для использующих английский.
6.55.3. Описание Sysvinit
Проинсталлированные программы: halt, init, killall5, last, lastb
(ссылка на last), mesg, pidof (ссылка на killall5), poweroff (ссылка на
halt), reboot (ссылка на halt), runlevel, shutdown, sulogin,
telinit (ссылка на init), utmpdump и wall.
Короткое описание
- halt
Обычно вызывает shutdown
с параметром -h, если текущий уровень
запуска не 0, затем он отдает команду ядру на отключение системы, но сначала
записывает в файл /var/log/wtmp,
что система отключается.
- init
Первый процесс, который стартует после инициализации аппаратуры
ядром и запускает все процессы для текущего уровня запуска.
-
killall5
Посылает сигнал всем процессам, за исключением родительских
процессов, таким образом он не убьет оболочку, вызвавшую скрипт.
- last
Показывает, какие пользователи подключены (и отключены) в системе,
просматривая файл /var/log/wtmp,
он также отображает процесс загрузки и отключения системы и
изменения уровней запуска.
- lastb
Показывает ошибки входа в систему, отмеченные в
/var/log/btmp.
- mesg
Контролирует возможность отправки другими пользователями сообщений
на текущий терминал пользователя.
- pidof
Возвращает PID указанных программ.
-
poweroff
Передает ядру команду на отключение системы и выключение компьютера
(смотрите halt).
- reboot
Передает ядру команду на перезагрузку системы
(смотрите halt).
-
runlevel
Возвращает предыдущий и текущий уровни запуска, последний уровень
запуска записан в /var/run/utmp.
-
shutdown
Безопасно отключает систему, отсылает сигнал всем процессам и
уведомляет всех подключенных пользователей.
-
sulogin
Позволяет зарегистрироваться root
. Обычно используется в скрипте init
, когда система загружается в однопользовательском режиме.
- telinit
Говорит init
о необходимости смены уровня запуска.
-
utmpdump
Отображает содержимое указанного login-файла в удобочитаемом формате.
- wall
Пишет сообщение всем подключенным пользователям.
|
|