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. |
В общем, slapd запускается подобным образом:
/usr/local/etc/libexec/slapd [<ключ>]*
где /usr/local/etc/libexec определен при в configure и <ключ> один из вышеописанных ключей (или в slapd(8)). Если вы указали уровень отладки (включая уровень 0), slapd будет автоматически ответвляться (fork), отсоединяться от управляющего терминала и работать в фоновом режиме.
Для безопасного завершения 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.