The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Каталог документации / Раздел "Сети, протоколы, сервисы" / Оглавление документа


7. Запуск slapd

slapd(8) предназначен для работы в качестве автономной службы. Такой подход позволяет серверу воспользоваться преимуществом кэширования, управлять проблемами параллельной работы основных баз данных и экономить системные ресурсы. Запуск с помощью inetd(8) НЕ допускается.


7.1. Параметры командной строки

slapd(8) поддерживает несколько параметров командной строки, подробно описанных в man-странице. В этом подразделе дано описание некоторых часто используемых параметров.

        -f <filename>

Этот параметр задает альтернативный файл конфигурации для slapd. Обычно по умолчанию данный файл располагается в /usr/local/etc/openldap/slapd.conf.

        -F <slapd-config-directory>

Задаёт расположение конфигурационной директории slapd. По умолчанию /usr/local/etc/openldap/slapd.d.

Если задано сразу оба параметра -f и -F, конфигурационный файл будет прочитан, переконвертирован в формат конфигурационной директории и записан в указанную директорию. Если ни одного из этих двух параметров не было задано, slapd попытается прочитать конфигурационную директорию по умолчанию перед тем, как попытаться использовать конфигурационный файл по умолчанию. Если существует конфигурационная директория правильного формата, тогда конфигурационный файл по умолчанию игнорируется. Все slap-утилиты, использующие настройки конфигурации, ведут себя аналогично.

        -h <URLs>

Данный параметр указывает настройки того, на каких интерфейсах/портах slap будет ожидать подключения. Значение по умолчанию - ldap:///, что означает, что slapd будет ожидать подключения LDAP по TCP на всех интерфейсах на стандартном порту LDAP 389. Вы можете задать конкретные пары хост-порт, либо другие схемы протокола (такие, как ldaps:// или ldapi://).

URLПротоколТранспорт
ldap:///LDAPTCP порт 389
ldaps:///LDAP поверх SSLTCP порт 636
ldapi:///LDAPIPC (Unix-сокеты)

Например, -h "ldaps:// ldap://127.0.0.1:666" укажет slapd обслуживать два варианта подключений: один из них по (нестандартной) схеме ldaps:// на всех интерфейсах на стандартном для ldaps:// порту 636, а второй - по стандартной схеме ldap:// на интерфейсе localhost (loopback) на порту 666. Хосты можно задавать либо именем хоста, либо адресом IPv4 или IPv6. Значение номера порта должно быть числовым.

Для LDAP поверх IPC, в URL может быть указан путь к Unix-сокету. Обратите внимание, что разделительные символы директорий должны быть закодированы в формате URL, как и все остальные символы, являющиеся специальными для URL. Таким образом, сокет /usr/local/var/ldapi должен быть закодирован как

        ldapi://%2Fusr%2Flocal%2Fvar%2Fldapi

ldapi: подробно описан в Using LDAP Over IPC Mechanisms (Использование LDAP поверх механизмов IPC) [Chu-LDAPI].

Имейте ввиду, что транспорт ldapi:/// пока не получил широкого распространения: не OpenLDAP-клиенты могут быть неспособны его использовать.

        -n <имя сервиса>

Этот параметр указывает имя сервиса, которое используется при журналировании и для других целей. Имя сервиса по умолчанию - slapd.

        -l <syslog-local-user>

Этот параметр указывает имя пользовательского канала для syslog(8). Значения могут быть LOCAL0, LOCAL1, LOCAL2, ..., и до LOCAL7. Значение по умолчанию - LOCAL4. Данный параметр может не поддерживаться на всех системах.

        -u user -g group

Эти параметры указывают, соответственно, пользователя и группу, под которыми будет запущен slapd. user может быть либо именем пользователя, либо uid. group может быть либо именем группы, либо gid.

        -r директория

Этот параметр задаёт директорию времени исполнения. slapd выполнит chroot(2) в эту директорию после того, как начнёт слушать на указанных ему портах, но до того, как начнёт чтение любых конфигурационных файлов или инициализацию любых механизмов манипуляции данными.

        -d <уровень> | ?

Этот параметр устанавливает уровень отладки в требуемый <уровень>. Если в качестве уровня был передан символ `?', slapd выведет различные доступные уровни отладки и завершит работу, независимо от того, какие ещё параметры Вы ему передали. Текущие уровни отладки:

Таблица 7.1: Уровни отладки
УровеньКлючевое словоОписание
-1anyвключить всю отладочную информацию
0 отключить отладку
1(0x1 trace)отслеживать вызовы функций
2(0x2 packets)отладка обработки пакетов
4(0x4 args)усиленная отладка
8(0x8 conns)управление соединениями
16(0x10 BER)вывод посылки и приёма пакетов
32(0x20 filter)обработка поисковых фильтров
64(0x40 config)обработка конфигурации
128(0x80 ACL)обработка списков контроля доступа
256(0x100 stats)статистика соединений/операций/результатов
512(0x200 stats2)статистика посылки записей журнала
1024(0x400 shell)вывод взаимодействия с механизмами манипуляции данными shell
2048(0x800 parse)вывод отладочной информации разбора записей
16384(0x4000 sync)обслуживание потребителей syncrepl
32768(0x8000 none)только сообщения, выводимые независимо от заданного уровня журналирования (то есть высокоприоритетные)

Вы можете задать несколько уровней отладки одновременно, указав по одному параметру -d для каждого желаемого уровня. Либо, поскольку уровни отладки можно складывать, Вы можете сами вычислить сумму и передать её slapd. Например, если Вам нужно отслеживать вызовы функций и проследить за обработкой конфигурационного файла, можно задать требуемый уровень как сумму этих двух уровней (в данном случае, -d 65). Либо, Вы можете позволить самому slapd произвести вычисления, (то есть -d 1 -d 64). Подробности смотрите в <ldap_log.h>.


Примечание: для того, чтобы была доступна вся отладочная информация, помимо двух уровней stats, доступных по умолчанию, slapd должен быть скомпилирован с опцией --enable-debug.


7.2. Старт slapd

Обычно slapd запускается так:

        /usr/local/libexec/slapd [<параметр>]*

где /usr/local/libexec определяется во время выполнения configure, а <параметр> - один из описанных выше (или в slapd(8)) параметров. Если Вы не указали уровень отладки (включая уровень 0), slapd автоматически выполнит ответвление (fork), отделит себя от управляющего терминала и начнёт работать в фоновом режиме.


7.3. Остановка slapd

Для безопасной остановки slapd(8) нужно выполнить такую команду:

        kill -INT `cat /usr/local/var/slapd.pid`

где /usr/local/var определяется во время выполнения configure.

Остановка slapd более радикальными методами может привести к потере информации или повреждению базы данных.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру