Запуск LDAP сервера

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

Ключи командной строки

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

-f <имя файла>
Этот ключ указывает альтернативный файл конфигурации slapd. По умолчанию он /usr/local/etc/openldap/slapd.conf.

-h <URL>
Этот ключ определяет конфигурацию слушателя. По умолчанию ldap:/// что подразумевает LDAP поверх TCP
на всех интерфейсах на порту по умолчанию для LDAP 389. Вы можете указать пару хост-порт или другие
схемы протокола (например,  ldaps:// или ldapi://). Например, -h "ldaps:// ldap://127.0.0.1:667"
приведет к созданию двух слушателей: один - LDAP поверх SSL на всех интерфейсах на порту по 
умолчанию LDAP/SSL 636, и другой - LDAP поверх TCP на локальном узле (петлевом интерфейсе) на порту
667. Хост можно указывать в форме IPv4 чисел разделенных точками или в форме имени хоста.
Значение номера порта должно быть числом.

-n <имя службы>
Этот ключ определяет имя службы используемой для регистрации и других целей. Служба по умолчанию - slapd.

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

-u пользователь -g группа
Этот ключ определяет пользователя и группу, соответственно, от чьего имени происходит запуск программы. 
Пользователь может быть либо именем, либо uid. Группа может быть либо именем группы, либо gid.

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

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

-1  включает всю отладочную информацию  
0  без отладки  
1  трассировать вызовы функций  
2  отладка обработки пакетов  
4  тщательная отладочная трассировка
8  управление соединением  
16  печать принятых и отправленных пакетов
32  обработка фильтров поиска 
64  обработка конфигурационного файла
128  обработка списка контроля доступа
256  регистрировать статистику соединения/обработки/результатов
512  регистрировать статистику отправленных элементов
1024  печать коммуникаций с shell механизмом базы данных  
2048  печать отладки анализа элемента  

Вы можете активировать несколько уровней, указав по одному отладочному уровню в каждом ключе. 
Или, так как уровни отладки аддидивны, вы можете вычислить число самостоятельно. То есть, если вы
хотите трассировать вызовы функций и видеть обработку конфигурационного файла, вы можете установить
уровень в сумму их значений (в данном, случае, -d 65). Либо вы можете заставить slapd выполнить 
сложение (например -d 1 -d 64). Более подробную информацию ищите в <ldap.h>.

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

Запуск LDAP сервера

В общем, slapd запускается подобным образом:

/usr/local/etc/libexec/slapd [<ключ>]*

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

Завершение LDAP сервера

Для безопасного завершения slapd, вы должны дать такую команду:

kill -TERM `cat $(ETCDIR)/slapd.pid`

Завершение slapd более радикальным методом может привести к повреждению его LDBM баз данных, так как перед завершением ему требуется сбросить содержимое различных буферов. Обратите внимание, что slapd записывает свой pid в файл с именем slapd.pid в каталоге, который указан в конфигурационном файле slapd.conf, например: /usr/local/var/slapd.pid

Вы можете изменить место расположения этого pid, изменив переменную SLAPD_PIDFILE в include/ldapconfig.h.edit

Slapd также записывает свои аргументы в файл с именем slapd.args в каталоге, указанном в конфигурационном файле slapd.conf, например /usr/local/var/slapd.args

Вы можете изменить место расположения файла аргументов, изменив переменную SLAPD_ARGSFILE в include/ldapconfig.h.edit.