SUSE Linux
11
мар
2014
Интерактивное выполнение процесса Init-V
Если при запуске системы возникнут проблемы, вы также можете интерактивно выполнить процесс Init-V. Для этого при запуске через GRUB сообщите параметр загрузки confirm. Теперь перед выполнением каждого сценария Init-V будет выводиться запрос о подтверждении. На каждый сценарий выделяется пять секунд времени, в течение которых можно отменить запуск нажатием клавиши N.
Запуск сценариев Init-V
В SUSE можно вызывать любые сценарии не только командой /etc/init.d/имя, которая, скорее, неудобна, но и в виде rcимя (то есть, например, rcsmb — для запуска или остановки сервера Samba). Соответствующие ссылки находятся в /usr/sbin.
Запуск X.
Графическая система X запускается сценарием Init-V xdm. Какой экранный менеджер будет запущен далее (например, kdm4), определяет переменная DISPLAYMANAGER, настраиваемая в /etc/sysconfig/displaymanager. Сам экранный менеджер запускается относительно поздно — после всех сетевых служб. Раньше него запускается сценарий earlyxdm, загружающий нужные файлы в кэш с помощью команды preload.
Внутрисистемная реализация перехода с одного уровня запуска на другой.
При переходе с одного уровня запуска на другой сценарий /etc/init.d/rc сравнивает каталоги/etc/init.d/rcnew.d и rcold.d, проверяя, какие функции изменяются при таком переходе. Такие функции останавливаются (сценарные файлы rcold.d/K*) или запускаются заново (/etc/init.d/rcnew.d/S*). Функции, которые не изменяются при смене уровня запуска, не останавливаются, а значит, и не запускаются заново.
Параллельное выполнение сценариев Init-V. Сценарии Init-V, не зависящие друг от друга, по умолчанию выполняются параллельно, а не последовательно. Управление деталями процесса загрузки осуществляется в файле /etc/sysconfig/ boot. Чтобы обеспечить параллельное выполнение, ссылки Init-V нужно изменить с помощью команды insserv (но не напрямую). Она создает файлы с расширением .depend.*, содержащие информацию о взаимозависимостях между сценариями Init-V. Более подробно запуск системы SUSE описан на странице сайта-руководства, посвященной init.d.
Графический процесс загрузки
При запуске системы SUSE отображает индикатор загрузки. Если вместо него вы хотите видеть подробные сообщения от ядра и Init-V, нажмите Esc. Теперь сообщения будут выводиться в первой текстовой консоли, на фоне рисунка (экран-заставка).
За графический процесс загрузки отвечает пакет bootsplash. Существуют загрузочные параметры, которые могут оказывать влияние как на сообщения о ходе загрузки, так и на экран-заставку. Есть три возможные настройки:
splash=silent — в консоли 1 отображается фоновый растровый рисунок, а в процессе запуска вы видите только индикатор загрузки; действует по умолчанию;
splash=verbose — в консоли 1 также отображается растровый рисунок, на фоне
которого вы видите подробные сообщения о ходе загрузки; О splash=native — консоль 1 отображается в текстовом режиме, в ней вы видите только подробные сообщения о ходе загрузки.
Если вы используете загрузчик GRUB, укажите желаемый параметр в файле / boot/grub/menu.lst. Если же, напротив, вы применяете LILO, добавьте параметр в строку append и выполните команду lilo. Для того чтобы отключить экран-заставку на ходу, можно также воспользоваться следующей командой:
root# echo 0 > /proc/splash
Управление ссылками Init-V
Если хотите переадресовать ссылки /etc/init.d/rcn.d на новый сценарий Init-V, просто выполните команду insserv имя_сценария. Она интерпретирует комментарии, содержащиеся в сценарии и описывающие настройки для стандартного начала и завершения работы. Эти комментарии сообщают, на каких уровнях запуска должен выполняться сценарий.
root# insserv squid
Чтобы снова удалить ссылки, указывающие на сценарий, выполните insserv с параметром -r.
Команда insserv также отвечает за правильную нумерацию ссылок (такая нумерация определяет порядок, в котором будут выполняться сценарии Init-V). Для того чтобы решить, какой номер будет у ссылки, команда insserv интерпретирует комментарии Provides и Requires в сценарии Init-V. При необходимости команда может перенумеровать и все уже имеющиеся ссылки, чтобы правильно поставить новый сценарий по отношению к другим. Такой автоматизм хорош при работе, но из-за него становится сложнее изменить последовательность выполнения сценариев, заданную на старте.
В SUSE — опять же, ради обеспечения совместимости — имеется команда chkconfig. Параметры -add, -del и -list функционируют так же, как и в Red Hat, но с другими параметрами есть и разночтения. Внутри системы chkconfig обращается к insserv.
Строение файлов Init-V
Далее показано строение сценария Init-V в SUSE. Это сценарий для запуска демона SSH, который я немного сократил ради экономии места.
<code>#! /bin/sh # /etc/init.d/sshd ### НАЧАЛО РАЗДЕЛА ОБ INIT # Provides: sshd # Required-Start: Snetwork $remote_fs # Required-Stop: Snetwork $remote_fs # Default-Start: 3 5 # Default-Stop: 0 12 6 # Description: Start the sshd daemon ### КОНЕЦ РАЗДЕЛА ОБ INIT # различные инициализации SSHD_BIN=/usr/sbin/sshd test -x $SSHD_BIN || exit 5 SSHD_SYSCONFIG=/etc/sysconfig/ssh test -r $SSHD_SYSCONFIG || exit 6 . $SSHD_SYSCONFIG SSHD_PIDFILE=/var/run/sshd.init.pid # загрузка разных вспомогательных функций (rc_check, rc_status ...) . /etc/rc.status # Сбросить статус службы в исходное состояние rc_reset case "$1" in start) ... ssh-Keys erzeugen, falls sie noch nicht existieren echo -n "Starting SSH daemon" startproc -f -p $SSHD_PIDFILE $SSHD_BIN $SSHD_0PTS -o "PidFile=$SSHD_PIDFILE" rc_status -v stop) echo -n "Shutting down SSH daemon" killproc -p $SSHD_PIDFILE -TERM $SSHD_BIN rc_status -v restart) ... diverse weitere Varianten *) echo "Usage: $0 {start|stop|status|...}" exit 1 esac rc_exit</code>
Для правильной интеграции сценария в систему Init-V решающее значение имеют комментарии INIT, приведенные в начале. Параметр Required-Start или Required-Stop указывает, на каких уровнях запуска должен по умолчанию загружаться сценарий. Эта информация интерпретируется insserv.
Пример сценария Init-V. Если вы хотите интегрировать некоторые функции уровней запуска в процесс Init-V, стройте файл запуска и остановки по образцу /etc/init.d/skeleton. Если для реализации собственных (сетевых) функций вам требуется специальный сценарий Init-V, то код может получиться гораздо компактнее. Код из следующего примера активизирует или деактивизирует функцию маскарадинга, позволяя, таким образом, другим компьютерам использовать соединение с Интернетом.
<code>#! /bin/sh # /etc/init.d/masq ### НАЧАЛО РАЗДЕЛА ОБ INIT # Provides: masq # Required-Start: Snetwork # Required-Stop: Snetwork # Default-Start: 3 5 # Default-Stop: 0 12 6 # Description: activates masquerading ... ### КОНЕЦ РАЗДЕЛА ОБ INIT # различные функции, например rc_status . /etc/rc.status INETDEV=ethO case "$1" in start) echo -n "Starting masquerading" echo 1 > /proc/sys/net/ipv4/ip_forward iptables -A POSTROUTING -t nat -o SINETDEV -j MASQUERADE rc_status -v stop) echo -n "Shutting down masquerading" iptables -D POSTROUTING -t nat -o SINETDEV -j MASQUERADE echo 0 > /proc/sys/net/ipv4/ip_forward rc_status -v *) echo "Usage: $0 {start|stop}" exit 1 esac rc_exit</code>
Смотрите так же:
Запуск системы Ubuntu
Услуги по MODX Revolution
Посмотреть все услуги
Оптимизация сайта
Подробнее & Заказать
Создание сайта на MODX Revolution
Подробнее & Заказать
Перенос сайта на MODX Revolution
Подробнее & Заказать
Комментарии ()