#!/bin/sh # # ldap Startup script for the OpenLDAP server # # chkconfig: 345 20 80 # # description: OpenLDAP is a Lightweight Directory Access Protocol server # # processname: slapd # pidfile: /var/run/slapd/slapd.pid # Source function library . /etc/rc.d/init.d/functions # Get network config . /etc/sysconfig/network # defaults SLAPDSYSLOGLEVEL="" SLAPDURLLIST="" SLAPDOPTIONS="" SLAPD_SOCKET_PATH=/var/run/ldapi SLAPD_CONFIG_FILE=/etc/openldap/slapd.conf # setup instance variable, can be used to sysconfig/ldap to do some magic SLAPD_INSTANCE=${0##*/} SLAPD_INSTANCE=${SLAPD_INSTANCE##[SK][0-9][0-9]} # Get service config [ -f /etc/sysconfig/ldap ] && . /etc/sysconfig/ldap # Check that networking is up. if is_yes "${NETWORKING}"; then if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then msg_network_down OpenLDAP exit 1 fi else exit 0 fi lockfile=/var/lock/subsys/$SLAPD_INSTANCE pidfile=$(awk '/^pidfile/ {print $2}' $SLAPD_CONFIG_FILE) pidfile=${pidfile:-/var/run/slapd/slapd.pid} start() { if [ -f $lockfile ]; then msg_already_running "OpenLDAP" return fi msg_starting "OpenLDAP" ARGS="-u slapd -g slapd" if [ -n "$SLAPDSYSLOGLEVEL" ]; then ARGS="$ARGS -s $SLAPDSYSLOGLEVEL" fi if [ -n "$SLAPDOPTIONS" ]; then ARGS="$ARGS $SLAPDOPTIONS" fi # optionally support old option if [ -n "$SLAPDNICE" ]; then SERVICE_RUN_NICE_LEVEL=$SLAPDNICE fi if [ -n "$SLAPD_CONFIG_FILE" ]; then ARGS="$ARGS -f $SLAPD_CONFIG_FILE" fi if is_yes $RC_LOGGING; then daemon /usr/sbin/slapd $ARGS ${SLAPDURLLIST:+ -h \"$SLAPDURLLIST\"} else daemon /usr/sbin/slapd $ARGS ${SLAPDURLLIST:+ -h "$SLAPDURLLIST"} fi RETVAL=$? [ $RETVAL -eq 0 ] && touch $lockfile if [ $RETVAL -eq 0 -a -S $SLAPD_SOCKET_PATH ]; then chown "$LDAPI_SOCKET_OWNER":"$LDAPI_SOCKET_GROUP" $SLAPD_SOCKET_PATH && \ chmod "$LDAPI_SOCKET_MODE" $SLAPD_SOCKET_PATH fi } stop() { if [ ! -f $lockfile ]; then msg_not_running "OpenLDAP" return fi msg_stopping "OpenLDAP" killproc --pidfile $pidfile --waitforname slapd --waitfortime 300 slapd rm -f $lockfile >/dev/null 2>&1 } condrestart() { if [ -f $lockfile ]; then stop start else msg_not_running "OpenLDAP" RETVAL=$1 fi } RETVAL=0 # See how we were called. case "$1" in start) start ;; stop) stop ;; restart) stop start ;; try-restart) condrestart 0 ;; force-reload) condrestart 7 ;; status) status --pidfile $pidfile slapd RETVAL=$? ;; *) msg_usage "$0 {start|stop|restart|try-restart|force-reload|status}" exit 3 esac exit $RETVAL