diff options
Diffstat (limited to 'main/openldap/slapd.initd')
-rw-r--r-- | main/openldap/slapd.initd | 44 |
1 files changed, 18 insertions, 26 deletions
diff --git a/main/openldap/slapd.initd b/main/openldap/slapd.initd index 47cb7feb38..350cc0d50a 100644 --- a/main/openldap/slapd.initd +++ b/main/openldap/slapd.initd @@ -1,12 +1,19 @@ #!/sbin/openrc-run -# Copyright 1999-2012 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/net-nds/openldap/files/slapd-initd-2.4.28-r1,v 1.2 2012/02/12 21:35:04 robbat2 Exp $ +: ${pidfile:="/run/openldap/slapd.pid"} + +name="LDAP server" extra_commands="checkconfig" -pidfile=/var/run/openldap/${SVCNAME}.pid +description_checkconfig="Check slapd.conf for errors" + +command="/usr/sbin/slapd" +# OPTS is for backward compatibility +cfg_opt="${cfgdir:+"-F $cfgdir"} ${cfgfile:+"-f $cfgfile"}" +command_args="-u ldap -g ldap $cfg_opt ${command_args:-${OPTS:-}}" -[ -z "$INSTANCE" ] && INSTANCE="openldap${SVCNAME#slapd}" +stopsig=2 +start_stop_daemon_args=" + ${KRB5_KTNAME:+"--env KRB5_KTNAME=$KRB5_KTNAME"}" depend() { need net @@ -15,28 +22,13 @@ depend() { provide ldap } -start() { - checkpath --directory --owner ldap:ldap ${pidfile%/*} - if ! checkconfig -Q ; then - eerror "There is a problem with your slapd.conf!" - return 1 - fi - ebegin "Starting ldap-server" - [ -n "$KRB5_KTNAME" ] && export KRB5_KTNAME - eval start-stop-daemon --start \ - --pidfile ${pidfile} \ - --exec /usr/sbin/slapd \ - -- \ - -u ldap -g ldap "${OPTS}" - eend $? -} - -stop() { - ebegin "Stopping ldap-server" - start-stop-daemon --stop --signal 2 --quiet --pidfile ${pidfile} - eend $? +start_pre() { + checkpath --directory --owner ldap:ldap "${pidfile%/*}" + /usr/sbin/slaptest -u -Q $cfg_opt || /usr/sbin/slaptest -u $cfg_opt } checkconfig() { - /usr/sbin/slaptest -u "$@" ${OPTS_CONF} + ebegin "Checking $name configuration..." + /usr/sbin/slaptest -u $cfg_opt + eend $? } |