Проект Документации Freebsd   руководство

Вид материалаРуководство

Содержание


11.3. Основные настройки
11.4. Настройка приложений
11.5. Запуск сервисов
Подобный материал:
1   ...   22   23   24   25   26   27   28   29   ...   69

11.3. Основные настройки


Основные настройки системы располагаются в /etc/rc.conf. Этот файл вмещает широкий спектр конфигурационной информации, используемой при загрузке системы. Имя этого файла прямо отражает его назначение, это файл настройки для файлов rc*.

Администратор должен сделать записи в rc.conf чтобы переопределить строки по умолчанию из /etc/defaults/rc.conf. Файлы по умолчанию нельзя копировать в /etc - они вмещают значения по умолчанию, а не примеры значений. Все специфичные для данной системы изменения должны быть сделаны в файле rc.conf.

Существует несколько методов для отделения общей конфигурации для группы систем от конкретной для данной системы в целях уменьшения объема работы администратора. Рекомендуемый метод - прописать общую конфигурацию в отдельный файл, например, в /etc/rc.conf.site, и включить его название в /etc/rc.conf, который вмещает только специфичную для данной системы информацию.

Поскольку rc.conf читается sh(1), есть тривиальный способ сделать это. Например:

• rc.conf:

. rc.conf.site

hostname="node15.example.com"

network_interfaces="fxp0 lo0"

ifconfig_fxp0="inet 10.1.1.1"

• rc.conf.site:

defaultrouter="10.1.1.254"

saver="daemon"

blanktime="100"

Файл rc.conf.site может быть распространён на все системы, используя rsync или подобную ей программу, в то время, как rc.conf должен остаться только на одной машине.

Обновление системы с помощью sysinstall(8) или make world не повлекут за собой перезапись rc.conf. Вся информация в этом файле сохранится.

11.4. Настройка приложений


Обычно, установленные приложения имеют свои конфигурационные файлы, со своим собственным синтаксисом. Важно хранить эти файлы отдельно от файлов основной системы, чтобы их можно было легко администрировать с помощью средств управления пакетами.

Обычно эти файлы устанавливаются в /usr/local/etc. В случае, если приложению нужно большое количество конфигурационных файлов, для их хранения будет создан подкаталог.

Обычно, вместе с установкой портов и пакетов, устанавливаются и примеры конфигурационных файлов. Обычно они имеют расширение .default. Если не существует конфигурационных файлов для этого приложения, они будут созданы путём копирования .default файлов.

Например, /usr/local/etc/apache:

-rw-r--r-- 1 root wheel 2184 May 20 1998 access.conf

-rw-r--r-- 1 root wheel 2184 May 20 1998 access.conf.default

-rw-r--r-- 1 root wheel 9555 May 20 1998 httpd.conf

-rw-r--r-- 1 root wheel 9555 May 20 1998 httpd.conf.default

-rw-r--r-- 1 root wheel 12205 May 20 1998 magic

-rw-r--r-- 1 root wheel 12205 May 20 1998 magic.default

-rw-r--r-- 1 root wheel 2700 May 20 1998 mime.types

-rw-r--r-- 1 root wheel 2700 May 20 1998 mime.types.default

-rw-r--r-- 1 root wheel 7980 May 20 1998 srm.conf

-rw-r--r-- 1 root wheel 7933 May 20 1998 srm.conf.default

Размеры файлов показывают, что только файл srm.conf был изменён. При следующем обновлении Apache этот файл уже не будет перезаписан.

11.5. Запуск сервисов


Обычно в системе работает множество сервисов. Их можно запустить различными способами, каждый из которых имеет свои преимущества.

Программное обеспечение, установленное из коллекции портов или пакетов обычно записывает свои скрипты в /usr/local/etc/rc.d который выполняется с аргументом start при запуске и с аргументом stop при завершении работы системы. Этот метод запуска рекомендуется, если вы запускаете сервисы как root, или же они должны быть запущены с привилегиями root. Эти скрипты устанавливаются вместе с пакетами, и соответственно, при удалении пакетов скрипты будут также удалены.

Типичный скрипт из /usr/local/etc/rc.d, выполняющийся при запуске выглядит следующим образом:

#!/bin/sh

echo -n ' FooBar'


case "$1" in

start)

/usr/local/bin/foobar

;;

stop)

kill -9 `cat /var/run/foobar.pid`

;;

*)

echo "Usage: `basename $0` {start|stop}" >&2

exit 64

;;

esac


exit 0

Стартовые скрипты FreeBSD ищут в каталоге /usr/local/etc/rc.d скрипты с расширением .sh, исполняемые пользователем root. Обнаруженные скрипты выполняются с с параметром start при старте системы и с параметром stop при завершении работы системы. Поэтому если вы хотите использовать пример скрипта выше и запускать его во время старта системы, сохраните его в каталоге /usr/local/etc/rc.d с именем FooBar.sh и убедитесь, что он исполняемый. Вы можете сделать скрипт исполняемым с помощью chmod(1), как показано ниже:

# chmod 755 FooBar.sh

Некоторые сервисы должны быть запущены inetd(8) при установке соединения с определённым портом. Это может понадобиться, например, для почтовых серверов (POP, IMAP, и т.д.). Для этого нужно отредактировать файл /etc/inetd.conf. Подробнее о работе с этим файлом вы можете прочитать в inetd(8).

Некоторые дополнительные системные сервисы могут быть не учтены в файле /etc/rc.conf. Тогда для их запуска нужно прописать соответствующую команду в /etc/rc.local. Во FreeBSD 3.1 не предусмотрен /etc/rc.local; но считается признаком хорошего тона создание этого файла администратором. Заметьте, что rc.local используется для запуска сервисов только в крайнем случае. Если есть лучший способ запустить сервис, используйте его.

Замечание: Не записывайте свои команды в /etc/rc.conf. Для запуска демонов, или для выполнения вашей команды во время запуска - запишите ваш скрипт в /usr/local/etc/rc.d.

Также допускается использование cron(8) для запуска системных сервисов. Этот метод обладает рядом преимуществ, которые заключаются не только в том, что cron(8) запускает эти процессы, как владелец crontab, но и в том, что сервисы могут быть запущены и не привилегированными пользователями.

Очень удобно пользоваться возможностью cron(8), которая заключается в том, что если вместо времени указать @reboot, запланированная программа будет запущена сразу после запуска cron(8) после перезагрузки системы.