Table of Contents
Загрузочные скрипты
Скрипты запуска и завершения работы и их конфигурация.
Процесс запуска SliTaz
SliTaz не использует уровни исполнения (runlevels), вся система загружается через основной скрипт и его главный файл конфигурации. Сам скрипт запускает другие скрипты поменьше, которые управляют локализацией системы и программами в автозагрузке.
/etc/init.d/* — папка со скриптами и демонами
Папка /etc/init.d содержит все скрипты .rc и .sh, а также маленькие shell-скрипты и демоны, запускающие те или иные службы (например, dropbear или lighttpd). Демоны можно запускать, перезапускать и останавливать командой
# /etc/init.d/daemon [start|stop|restart]
В SliTaz вы найдете файл /etc/init.d/README, описывающий основной принцип работы rc-скриптов. Кроме того, все скрипты и демоны автозагрузки могут обращаться к файлу /etc/init.d/rc.functions. Данный файл дает возможность добавлять в rc-скрипты различные функции. SliTaz использует функцию status, чтобы проверить, завершилась ли предыдущая команда успешно (при этом она возвращает код выхода 0) или нет.
/etc/init.d/rcS — основной скрипт инициализации
Скрипт /etc/init.d/rcS настраивает все основные службы и запускает базу системы. Вначале он монтирует файловые системы и запускает службы вроде syslogd, klogd и mdev, после чего выполняет очистку системы и некоторые другие действия. Этот скрипт использует файл конфигурации /etc/rcS.conf, где указаны скрипты и демоны, запускаемые при загрузке. Вы можете просмотреть этот скрипт, чтобы узнать, какие команды запускаются при старте вашей системы:
# nano rootfs/etc/init.d/rcS
Специфические скрипты и демоны
bootopts.sh — опции режима LiveCD
В этом скрипте указываются опции LiveCD, передаваемые при загрузке. К нему также обращается файл /proc/cmdline. Этот скрипт позволяет использовать флешку или внешний жесткий диск для раздела /home, указав параметр home=usb или home=sda[1-9] соответственно. Можно также указать язык системы и раскладку клавиатуры.
network.sh — запуск сети
Этот скрипт ищет собственный файл конфигурации /etc/network.conf, где указано, какой сетевой интерфейс должен быть запущен; скажем, вы хотите запускать клиент DHCP или использовать статический IP. Если переменная $DHCP равна yes, то скрипт запускает клиент DHCP на интерфейсе $INTERFACE.
i18n.sh — поддержка языков
SliTaz хранит настройки текущей локали в файле /etc/locale.conf, который считывается файлом /etc/profile при каждой загрузке. /etc/locale.conf создается при запуске системы скриптом /etc/i18n.sh. Этот скрипт запускает приложение tazlocale в случае, если файла /etc/locale.conf не существует. Тот же процесс осуществляется tazkmap в отношении файла /etc/kmap.conf. Обе эти утилиты находятся в папке /sbin и используют dialog и библиотеки ncurses.
Скрипт также проверяет наличие файла настроек для часового пояса /etc/TZ, при его отсутствии создается новый файл на основе конфигурации клавиатуры.
local.sh — локальные команды
Скрипт /etc/init.d/local.sh позволяет системному администратору добавлять локальные команды в автозапуск. Например:
#!/bin/sh # /etc/init.d/local.sh: Local startup commands. # All commands here will be executed at boot time. # . /etc/init.d/rc.functions echo "Starting local startup commands... "
rc.shutdown
Этот скрипт вызывается файлом /etc/inittab при завершении работы системы. Он останавливает все демоны, указанные в переменной RUN_DAEMONS файла /etc/rcS.conf.
/etc/inittab — файл конфигурации для init
Это самый первый файл, к которому обращается ядро при загрузке. Он определяет скрипт инициализации (/etc/init.d/rcS), командные оболочки (ttys) и действия в случае перезагрузки или сбоя. В SliTaz tools вы найдете полный вариант этого файла с комментариями.
# /etc/inittab: init configuration for SliTaz GNU/Linux. # Boot-time system configuration/initialization script. # ::sysinit:/etc/init.d/rcS # /sbin/getty respawn shell invocations for selected ttys. tty1::respawn:/sbin/getty 38400 tty1 tty2::respawn:/sbin/getty 38400 tty2 tty3::respawn:/sbin/getty 38400 tty3 tty4::respawn:/sbin/getty 38400 tty4 tty5::respawn:/sbin/getty 38400 tty5 tty6::respawn:/sbin/getty 38400 tty6 # Stuff to do when restarting the init # process, or before rebooting. ::restart:/etc/init.d/rc.shutdown ::restart:/sbin/init ::ctrlaltdel:/sbin/reboot ::shutdown:/etc/init.d/rc.shutdown