В FreeBSD недавно была интегрирована из NetBSD система rc.d, используемая для старта системы. Многие из файлов в каталоге /etc/rc.d предназначены для основных сервисов, они могут управляться параметрами start, stop, и restart. Например, sshd(8) может быть перезапущен следующей командой:
# /etc/rc.d/sshd restart
Эта процедура похожа для других сервисов. Конечно, сервисы обычно запускаются автоматически, как указано в rc.conf(5). Например, включение даемона Network Address Translation при запуске выполняется простым добавлением следующей строки в /etc/rc.conf:
natd_enable="YES"
Если natd_enable="NO" уже присутствует, просто измените NO на YES. Скрипты rc автоматически загрузят все другие зависимые сервисы, как описано ниже.
Поскольку система rc.d в основном предназначена для запуска/отключения сервисов во время запуска/отключения системы, стандартные параметры start, stop и restart будут работать только если установлена соответствующая переменная в /etc/rc.conf. Например, команда выше sshd restart будет работать только если переменная sshd_enable в файле /etc/rc.conf установлена в YES. Для выполнения скриптов независимо от установок в /etc/rc.conf, параметры start, stop или restart необходимо задавать с префиксом ''force''. Например, для перезапуска sshd независимо от установок в /etc/rc.conf, выполните следующую команду:
# /etc/rc.d/sshd forcerestart
Проверить состояние переменной в файле /etc/rc.conf легко: запустите соответствующий скрипт из rc.d с параметром rcvar. Проверка переменной для sshd выполняется следующей командой:
# /etc/rc.d/sshd rcvar # sshd $sshd_enable=YES
Замечание: Вторая строка (# sshd) это вывод команды sshd, а не консоль root.
Чтобы определить, запущен ли сервис, существует параметр status. Например для проверки того, запущен ли sshd, выполните:
# /etc/rc.d/sshd status sshd is running as pid 433.
Возможна также перегрузка (reload) сервиса. Скрипт, запущенный с этим параметром, попытается отправить сервису сигнал, вызывающий перезагрузку файлов настройки. В большинстве случаев это означает отправку сервису сигнала SIGHUP.
Структура rcNG используется не только для сетевых серверов, она отвечает также за большую часть инициализации системы. Рассмотрим, к примеру, файл bgfsck. Во время выполнения этот скрипт выводит следующее сообщение:
Starting background file system checks in 60 seconds.
Следовательно, этот файл используется для фоновой проверки файловых систем, которая выполняется только в процессе инициализации системы.
Функционирование многих сервисов системы зависит от корректной работы других сервисов. Например, NIS и другие основанные на RPC сервисы могут не запуститься, пока не загрузится rpcbind (portmapper). Для разрешения этой проблемы, в начале каждого скрипта в комментарии включаются информация о зависимостях и другие метаданные. Программа rcorder(8) используется для разбора этих комментариев во время старта системы для определения порядка, в котором должны вызываться системные сервисы в соответствии с зависимостями. В начало каждого стартового файла должны быть включены следующие строки:
PROVIDE: Задает имя сервиса, предоставляемого этим файлом.
REQUIRE: Список сервисов, необходимых этому сервису. Этот файл будет запущен после указанных сервисов.
BEFORE: Список сервисов, зависящих от этого сервиса. Этот файл будет запущен до указанных сервисов.
KEYWORD: FreeBSD или NetBSD. Используется для функций, зависящих от версии *BSD.
Используя этот метод, администратор может легко контролировать системные сервисы без использования ''уровней запуска'', как в некоторых других операционных системах UNIX®.
Дополнительную информацию о системе rc.d FreeBSD 5.X можно найти на страницах справочника rc(8) и rc.subr(8).
Пред. | Начало | След. |
Настройка утилиты cron | Уровень выше | Настройка карт сетевых интерфейсов |
Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
По вопросам связанными с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам связанным с русским переводом документации, пишите в рассылку <frdp@FreeBSD.org.ua>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.