AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 718174
Accepted
Chanel
Chanel
Asked: 2022-09-22 12:34:00 +0800 CST2022-09-22 12:34:00 +0800 CST 2022-09-22 12:34:00 +0800 CST

在 RHEL 8 上安装 OpenLDAP——slapd.pid 问题

  • 772

我已经在一个新的 RHEL 8 实例上编译了当前版本的 OpenLDAP,并正在使用签名的 SSL 证书对其进行设置。当我开始拍打时,我得到unable to open pid file "/var/run/openldap/slapd.pid": 2 (No such file or directory). 惊喜,惊喜,openldap 目录不存在。

我创建了目录并将所有权设置为 ldap:ldap。现在,当我开始 slapd 时,我得到Can't open PID file /var/lib/openldap/slapd.pid (yet?) after start: No such file or directory. 服务不应该创建 pid 文件吗?

我尝试通过这样做进行故障排除,slapd -u ldap -g ldap -d 255但它没有返回任何错误。它启动 slapd 然后无限期挂起。这是输出:

632b738b.28af1a7e 0x7fb91fe62840 slapd starting
632b738b.28b084a2 0x7fb918147700 daemon: added 4r listener=(nil)
632b738b.28b0e5e8 0x7fb918147700 daemon: added 7r listener=0x1789270
632b738b.28b11145 0x7fb918147700 daemon: added 8r listener=0x1789360
632b738b.28b2645c 0x7fb918147700 daemon: epoll: listen=7 active_threads=0 tvp=zero
632b738b.28b27b69 0x7fb918147700 daemon: epoll: listen=8 active_threads=0 tvp=zero
632b738b.28b28d61 0x7fb918147700 daemon: activity on 1 descriptor
632b738b.28b2a342 0x7fb918147700 daemon: activity on:632b738b.28b2aaae 0x7fb918147700
632b738b.28b2c02b 0x7fb918147700 daemon: epoll: listen=7 active_threads=0 tvp=zero
632b738b.28b2d2eb 0x7fb918147700 daemon: epoll: listen=8 active_threads=0 tvp=zero

知道接下来要尝试什么吗?

如果有帮助,这是我的配置:

./configure --prefix=/usr --sysconfdir=/etc --disable-static --enable-debug --with-tls=openssl --with-cyrus-sasl --enable-dynamic --enable-crypt --enable-spasswd --enable-slapd --enable-modules --enable-rlookups --enable-backends=mod --disable-ndb --disable-sql --disable-shell --disable-bdb --disable-hdb --enable-overlays=mod

slapd.service

[Unit]
Description=OpenLDAP Server Daemon
After=syslog.target network-online.target
Documentation=man:slapd
Documentation=man:slapd-mdb

[Service]
Type=forking
PIDFile=/var/lib/openldap/slapd.pid
Environment="SLAPD_URLS=ldap:/// ldapi:/// ldaps:///"
Environment="SLAPD_OPTIONS=-F /etc/openldap/slapd.d"
ExecStart=/usr/libexec/slapd -u ldap -g ldap -h ${SLAPD_URLS} $SLAPD_OPTIONS

[Install]
WantedBy=multi-user.target
openldap
  • 1 1 个回答
  • 37 Views

1 个回答

  • Voted
  1. Best Answer
    larsks
    2022-09-23T10:47:14+08:002022-09-23T10:47:14+08:00

    你的第一个错误是:

    unable to open pid file "/var/run/openldap/slapd.pid": 2 (No such file or directory)
    

    有几种方法可以解决此错误。

    修复文件系统

    slapd正在尝试将 pid 文件写入/var/run/openldap/slapd.pid,但该目录/var/run/openldap不存在。/var/run是一个符号链接/run,它是一个临时目录:每次系统启动时都会重新创建它。

    要在其中创建目录/run,可以使用systemd-tmpfiles. 在/etc/tmpfiles.d中,创建一个slapd.conf包含以下内容的文件:

    D /run/openldap 0755 ldap ldap
    

    然后运行:

    systemd-tmpfiles --create
    

    这将确保它/var/run/openldap存在并且在系统启动时被创建。

    您将需要更新您的 slapd systemd 单元以使用正确的路径:

    [Service]
    Type=forking
    PIDFile=/var/run/openldap/slapd.pid
    Environment="SLAPD_URLS=ldap:/// ldapi:/// ldaps:///"
    Environment="SLAPD_OPTIONS=-F /etc/openldap/slapd.d"
    ExecStart=/usr/libexec/slapd -u ldap -g ldap -h ${SLAPD_URLS} $SLAPD_OPTIONS
    

    从您的配置中删除 PidFile

    您的 slapd 单元文件正在使用该PIDFile指令,因为您slapd以Type=forking. 从`systemd.service(5) 手册页:

    PIDFile=

    采用引用服务 PID 文件的路径。Type=对于设置为分叉的服务,建议使用此选项。指定的路径通常指向下面的文件/run/。如果指定了相对路径,则因此以 . 为前缀/run/。服务启动后,服务管理器会从这个文件中读取服务主进程的PID。

    所以如果我们不需要使用Type=forking,可以去掉这里的PIDFile配置和PidFileslapd中的对应配置。我们将slapd命令行修改为 include -d0,这会导致slapd在前台运行:

    [Service]
    Type=simple
    Environment="SLAPD_URLS=ldap:/// ldapi:/// ldaps:///"
    Environment="SLAPD_OPTIONS=-F /etc/openldap/slapd.d"
    ExecStart=/usr/libexec/slapd -d0 -u ldap -g ldap -h ${SLAPD_URLS} $SLAPD_OPTIONS
    

    PidFile然后从slapd.conf(或olcPidFile从)中删除您的设置cn=config。

    • 1

相关问题

  • openLDAP bdb_equality_candidates: (memberOf) 未编入索引

  • OpenLDAP 与 Active Directory 身份验证机制

  • ldap userCertificate 属性的问题

  • 如何使用 ldapscripts 中的 ldapmodifyuser 更改值

  • OpenDG 一个开源的 ldap 数据库处理和问题

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve