#!/bin/sh # Script that stops the ns-slapd server. # Exit status can be: # 0: Server stopped successfully # 1: Server could not be stopped # 2: Server was not running stop_instance() { SERV_ID=$1 # source env. for this instance if [ -f @initconfigdir@/@package_name@-$SERV_ID ]; then . @initconfigdir@/@package_name@-$SERV_ID else echo Instance $SERV_ID not found. return 1 fi PIDFILE=$RUN_DIR/$PRODUCT_NAME-$SERV_ID.pid if test ! -f $PIDFILE ; then echo No ns-slapd PID file found. Server is probably not running return 2 fi PID=`cat $PIDFILE` # see if the server is already stopped kill -0 $PID > /dev/null 2>&1 || { echo Server not running if test -f $PIDFILE ; then rm -f $PIDFILE fi return 2 } # server is running - kill it kill $PID loop_counter=1 # wait for 10 minutes (600 times 1 second) max_count=600 while test $loop_counter -le $max_count; do loop_counter=`expr $loop_counter + 1` if kill -0 $PID > /dev/null 2>&1 ; then sleep 1; else if test -f $PIDFILE ; then rm -f $PIDFILE fi return 0 fi done if test -f $PIDFILE ; then echo Server still running!! Failed to stop the ns-slapd process: $PID. Please check the errors log for problems. fi return 1 } if [ "$#" -eq 0 ]; then # We're stopping all instances. ret=0 for i in @initconfigdir@/@package_name@-*; do inst=`echo $i | sed -e 's,@initconfigdir@/@package_name@-,,g'` echo Stopping instance \"$inst\" stop_instance $inst if [ "$?" -ne 0 ]; then ret=$? fi done exit $ret else # We're stopping a single instance. stop_instance $* exit $? fi