#!/bin/sh
# description: Correr procesos ILS
# Sergio Cayuqueo <sergio@xtech.com.ar>
# XTECH www.xtech.com.ar

### BEGIN INIT INFO
# Provides:       ils
# Required-Start: 
# Required-Stop:
# Default-Start:  3 5
# Default-Stop:   0 1 6
# Description:    Internet Locator Server (ILS)
### END INIT INFO

 
# Source function library.
. /lib/lsb/init-functions
 
SLAPD_BIN=/usr/local/libexec/slapd
test -x $SLAPD_BIN || exit 5
 
SLAP1_CONF=/usr/local/etc/openldap/slapd.conf
SLAP2_CONF=/usr/local/etc/openldap/slapd2.conf

PIDFILE1=/var/run/slapd.pid
PIDFILE2=/var/run/slapd2.pid

test -x $SLAPD_BIN || { echo "$SLAPD_BIN no instalado";
        if [ "$1" = "stop" ]; then exit 0;
        else exit 5; fi; }

test -r $SLAP1_CONF || { echo "$SLAP1_CONF no existe";
        if [ "$1" = "stop" ]; then exit 0;
        else exit 6; fi; }

test -r $SLAP2_CONF || { echo "$SLAP2_CONF no existe";
        if [ "$1" = "stop" ]; then exit 0;
        else exit 6; fi; }


case "$1" in
  start)
        echo -n "Starting slapd1: "
        startproc -p $PIDFILE1 -f $SLAPD_BIN -f $SLAP1_CONF ; rc_status -v
        echo
        echo -n "Starting slapd2: "
        startproc -p $PIDFILE2 -f $SLAPD_BIN -h ldap://localhost:2345/ -f $SLAP2_CONF ; rc_status -v
        echo 
        ;;
  stop)
        echo -n "Shutting down ILS: "
        killproc -p $PIDFILE1 $SLAPD_BIN ; rc_status -v
        killproc -p $PIDFILE2 $SLAPD_BIN ; rc_status -v
        ;;
  status)
        echo -n "Checking for service ILS "
        ## Check status with checkproc(8), if process is running
        ## checkproc will return with exit status 0.
 
        # Estado de salida del comando:
        # 0 - servicio corriendo
        # 1 - servicio muerto pero en /var/run/ existe el archivo PID
        # 2 - servicio muerto pero en /var/lock/ existe el archivo lock
        # 3 - servicio sin correr
        #checkproc $SLAPD_BIN ; rc_status -v
	pidofproc -p $PIDFILE1 $SLAPD_BIN ; rc_status -v
	pidofproc -p $PIDFILE2 $SLAPD_BIN ; rc_status -v
        ;;
  restart)
        $0 stop
        $0 start
        ;;
  *)
        echo $"Usage: $0 {start|stop|status|restart}"
        exit 1
esac
 
exit 0
