我正在尝试创建一个具有自定义模式的LDAP镜像,并且我希望在修改它之前有一个可以工作的openLDAP服务。
我在docker镜像中安装了slapd和ldap-utils,方法是将以下内容放入dockerfile:
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y slapd ldap-utils此时,当我在新容器中打开bash时,service slapd status或/etc/init.d/slapd status都会输出"slapd is not running“。实际上,policy-rc拒绝在安装包之后执行start。
好吧,没问题,service slapd start返回OK并启动slapd服务。我可以在我的LDAP中搜索,修改它,一切都很好。
当我想重新启动slapd服务时,问题就来了。service slapd restart、service slapd force-reload或service slapd stop和service slapd start在“开始”命令时都会失败。"stop“命令返回OK。但是,这一次,service slapd status返回"slapd is running“。此外,我仍然可以在我的LDAP中进行搜索。
为了更多地了解发生了什么,我尝试使用debug选项启动slapd服务,如下所示:
slapd -h 'ldap:/// ldapi:///' -g openldap -u openldap -F /etc/ldap/slapd.d -d stats不幸的是,这挂在“草率开始”,并永远不会结束。
感谢您的帮助:)
发布于 2016-01-23 22:06:42
我也有同样的问题。当在容器中时,我发现停止slapd的唯一方法是pkill slapd
然而,这不适用于Dockerfile和run pkill slapd
发布于 2016-04-01 15:14:39
这是解决问题的另一种方法:
SLAPD_PID=$(cat /run/slapd/slapd.pid)
kill -15 $SLAPD_PID
while [ -e /proc/$SLAPD_PID ]; do sleep 0.1; done # wait until slapd is terminated发布于 2019-11-11 04:35:07
我刚刚在一个基于minideb (Debian Buster)的docker镜像中遇到了同样的问题。
在执行service slapd stop时,将调用/etc/init.d/slapd脚本的stop_slapd外壳函数,该函数依次执行以下命令:
start-stop-daemon --stop --quiet --oknodo --retry TERM/10 \
--pidfile "/var/run/slapd/slapd.pid" \
--exec /usr/sbin/slapd 2>&1当您在根shell中执行此命令并省略--quiet标志时,将显示以下错误:
root@4d1b74229670:/# start-stop-daemon --stop --oknodo --retry TERM/10 --pidfile /var/run/slapd/slapd.pid --exec /usr/sbin/slapd
No /usr/sbin/slapd found running; none killed./var/run/slapd/slapd.pid文件存在,/usr/sbin/slapd可执行文件路径也是正确的,过程如下所示:
root@4d1b74229670:/# ps -efww | grep slapd
openldap 764 1 0 20:13 ? 00:00:00 /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -F /etc/ldap/slapd.d
root 779 1 0 20:22 pts/0 00:00:00 grep slapd为了解决这个问题,我更改了/etc/init.d/slapd函数中的stop_slapd,并将--exec $SLAPD替换为--name slapd
stop_slapd() {
reason="`start-stop-daemon --stop --quiet --oknodo --retry TERM/10 \
--pidfile "$SLAPD_PIDFILE" \
--name slapd 2>&1`"
}我使用sed应用了更改
sed -i 's/--exec $SLAPD 2/--name slapd 2/' /etc/init.d/slapdhttps://stackoverflow.com/questions/30671693
复制相似问题