#!/bin/sh
. /etc/rc.common
StartService ()
{
if [ "${LDAPSERVER:=-NO-}" = "-YES-" ]; then
if ! pid=$(GetPID slapd); then
ConsoleMessage "Starting LDAP server"
if [ "${LDAPSSL:=-NO-}" = "-YES-" ]; then
slapd -h "ldap:// ldaps:///"
else
slapd
fi
fi
fi
if [ "${LDAPREPLICATOR:=-NO-}" = "-YES-" ]; then
if ! pid=$(GetPID slurpd); then
ConsoleMessage "Starting LDAP replicator"
mkdir -p /var/run/openldap-slurp/replica
slurpd
fi
fi
}
StopService ()
{
if pid=$(GetPID slapd); then
ConsoleMessage "Stopping LDAP server"
kill -INT "${pid}"
else
ConsoleMessage "LDAP server is not running."
fi
if pid=$(GetPID slurpd); then
ConsoleMessage "Stopping LDAP replicator"
kill -INT "${pid}"
fi
}
RestartService ()
{
tries=10
StopService
while [ -e /var/run/slapd.pid ] && (( tries-- > 0 )); do
ConsoleMessage "Waiting for LDAP server to quit."
sleep 1
done
if pid=$(GetPID slapd); then
kill -9 "${pid}"
/bin/rm -f /var/run/slapd.pid
fi
while [ -e /var/run/slurpd.pid ] && (( tries-- > 0 )); do
ConsoleMessage "Waiting for LDAP replicator to quit."
sleep 1
done
if pid=$(GetPID slurpd); then
kill -9 "${pid}"
/bin/rm -f /var/run/slurpd.pid
fi
StartService
}
RunService "$1"