Здравствуйте. После обновления openldap-servers с 2.6.7 до 2.6.9 сервис slapd перестал запускаться. Я так понял, что связано с тем, что изменился механизм запуска с init скрипта на systemd. Содержимое файла /etc/sysconfig/ldap -------------- SLAPDURLLIST="'ldap://localhost/ ldaps:///'" -------------- В этом случае при запуске slapd в логах вот такое (ругается на SLAPDURLLIST): -------------- дек 26 08:46:03 server.home systemd[1]: slapd.service: Consumed 5.014s CPU time. дек 26 08:46:03 server.home systemd[1]: Failed to start slapd.service - OpenLDAP Server Daemon. дек 26 08:46:03 server.home systemd[1]: slapd.service: Failed with result 'exit-code'. дек 26 08:46:03 server.home systemd[1]: slapd.service: Main process exited, code=exited, status=1/FAILURE дек 26 08:46:03 server.home slapd[10780]: connections_destroy: nothing to destroy. дек 26 08:46:03 server.home slapd[10780]: slapd stopped. дек 26 08:46:03 server.home slapd[10780]: daemon: listen URL "'ldap://localhost/" parse error=3 дек 26 08:46:03 server.home slapd[10780]: @(#) $OpenLDAP: slapd 2.6.9 (Dec 12 2024 02:17:07) $ openldap дек 26 08:45:58 server.home cert-sh[9537]: Certificate will not expire дек 26 08:45:58 server.home systemd[1]: Starting slapd.service - OpenLDAP Server Daemon... -------------- Если SLAPDURLLIST закоментировать в /etc/sysconfig/ldap или оставить только SLAPDURLLIST="ldap://localhost/" то ругается на что-то другое, но уже не сам slapd: -------------- дек 25 16:17:36 server.home systemd[1]: slapd.service: Consumed 5.387s CPU time. дек 25 16:17:36 server.home systemd[1]: Failed to start slapd.service - OpenLDAP Server Daemon. дек 25 16:17:36 server.home systemd[1]: slapd.service: Failed with result 'protocol'. дек 25 16:17:35 server.home slapd[3180]: @(#) $OpenLDAP: slapd 2.6.9 (Dec 12 2024 02:17:07) $ openldap дек 25 16:17:29 server.home cert-sh[1119]: Certificate will not expire дек 25 16:17:28 server.home systemd[1]: Starting slapd.service - OpenLDAP Server Daemon... -------------- Если запускать руками, то ошибок нет. Подсмотрел, что предлагает Fedora для systemd unit файла slapd. Поменял Type на forking, и вшил нужные мне протоколы не как параметр -h 'ldap:/// ldaps:///'. В таком случае сервис стартует. -------------------------------------------- [Unit] Description=OpenLDAP Server Daemon After=network-online.target Documentation=man:slapd Documentation=man:slapd-config Documentation=man:slapd-mdb [Service] Type=forking Environment="SLAPDURLLIST=ldap://localhost/" Environment="SLAPD_OPTIONS=" EnvironmentFile=-/etc/sysconfig/ldap ExecStartPre=/usr/bin/cert-sh generate "slapd" ExecStartPre=/usr/sbin/slaptest -Q -u $SLAPD_OPTIONS ExecStartPre=/etc/chroot.d/ldap.all ExecStart=/usr/sbin/slapd -u ldap -r /var/lib/ldap -h 'ldap:/// ldaps:///' $SLAPD_OPTIONS NotifyAccess=all [Install] WantedBy=multi-user.target --------------------------------------------
Исправлено в 2.6.9-alt2.