X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?a=blobdiff_plain;f=files%2Fetc%2Finit.d%2Fslapd;fp=files%2Fetc%2Finit.d%2Fslapd;h=0000000000000000000000000000000000000000;hb=1bfc033259cebfaa0ca3dec10fbbf1ca450d44f1;hp=53b18fc6db6ee192dcea31adf105b58409d79a6b;hpb=9742d3662fe74ee8d7f0d510c9198fedeba13f35;p=carnet-upgrade.git diff --git a/files/etc/init.d/slapd b/files/etc/init.d/slapd deleted file mode 100755 index 53b18fc..0000000 --- a/files/etc/init.d/slapd +++ /dev/null @@ -1,256 +0,0 @@ -#! /bin/sh - -# Kill me on all errors -set -e - -# Stop processing if slapd is not there -[ -x /usr/sbin/slapd ] || exit 0 - -# Set default values -DB_RECOVER_CMD=db4.2_recover - -# Source the init script configuration -if [ -f "/etc/default/slapd" ]; then - . /etc/default/slapd -fi - -# Load the default location of the slapd config file -if [ -z "$SLAPD_CONF" ]; then - SLAPD_CONF="/etc/ldap/slapd.conf" -else - SLAPD_OPTIONS="-f $SLAPD_CONF $SLAPD_OPTIONS" - SLURPD_OPTIONS="-f $SLAPD_CONF $SLURPD_OPTIONS" -fi - -# Stop processing if the config file is not there -if [ ! -r "$SLAPD_CONF" ]; then - cat <&2 -No configuration file was found for slapd at $SLAPD_CONF. -If you have moved the slapd configuration file please modify -/etc/default/slapd to reflect this. If you chose to not -configure slapd during installation then you need to do so -prior to attempting to start slapd. -An example slapd.conf is in /usr/share/slapd -EOF - exit 0 # Should this be 1? -fi - -# Figure out some default settings -# Check wether slurpd should get started -if [ "$SLURPD_START" != "yes" ] && [ "$SLURPD_START" != "no" ]; then - if grep -q '^replica' "$SLAPD_CONF" > /dev/null 2>&1 ; then - SLURPD_START=yes - else - SLURPD_START=no - fi -fi - -# Find out the name of slapd's pid file -if [ -z "$SLAPD_PIDFILE" ]; then - SLAPD_PIDFILE=`sed -ne 's/^pidfile[[:space:]]\+\(.\+\)/\1/p' \ - "$SLAPD_CONF"` -fi - -# XXX: Breaks upgrading if there is no pidfile (invoke-rc.d stop will fail) -# -- Torsten -if [ -z "$SLAPD_PIDFILE" ]; then - cat <&2 -The pidfile for slapd is neither specified in "$SLAPD_CONF" nor -in /etc/default/slapd. Consequently, slapd will not be started. -EOF - exit 1 -fi - -# Pass the user and group to run under to slapd -if [ "$SLAPD_USER" ]; then - SLAPD_OPTIONS="-u $SLAPD_USER $SLAPD_OPTIONS" -fi - -if [ "$SLAPD_GROUP" ]; then - SLAPD_OPTIONS="-g $SLAPD_GROUP $SLAPD_OPTIONS" -fi - -# Tell the user that something went wrong and give some hints for -# resolving the problem. -report_failure() { - if [ -n "$reason" ]; then - echo " - failed: " - echo "$reason" - else - echo " - failed." - cat </dev/null 2>&1; then - echo -n " ($DB_RECOVER_CMD not found), " - return 0 - fi - - bdb_envs=`find_bdb_envs` - - # We care only about BDB environments - if [ -z "$bdb_envs" ]; then - return 0 - fi - - # Make sure there is no slapcat and no slapd running as we might - # break the DB in that case - if pidof /usr/lib/slapd >/dev/null; then - echo -n " (slapd running, no recovery), " - return 0 - fi - - echo -n " running BDB recovery" - for dbdir in $bdb_envs; do - reason="`$DB_RECOVER_CMD -eh $dbdir 2>&1`" || \ - db_recover_failed $dbdir - done - echo -n "," -} - -# Find bdb environment dirs -find_bdb_envs() { - local d - for d in `sed -ne 's/^directory[[:space:]]\+"*\([^"]\+\).*/\1/p' \ - < "$SLAPD_CONF"`; do - if [ -d "$d" -a -f "$d/objectClass.bdb" ]; then - echo $d - fi - done -} - -# Inform the user that BDB recovery failed -db_recover_failed() { - local dbdir - dbdir="$1" - - reason="`cat <&1`" - else - reason="`start-stop-daemon --start --quiet --oknodo \ - --pidfile "$SLAPD_PIDFILE" \ - --exec /usr/sbin/slapd -- -h "$SLAPD_SERVICES" $SLAPD_OPTIONS 2>&1`" - fi -} - -# Start the slurpd daemon and capture the error message if any to -# $reason. -start_slurpd() { - if [ "$SLURPD_START" != yes ]; then - return 0 - fi - echo -n " slurpd" - reason="`start-stop-daemon --start --quiet --oknodo \ - --exec /usr/sbin/slurpd -- $SLURPD_OPTIONS 2>&1`" -} - -# Stop the slapd daemon and capture the error message (if any) to -# $reason. -stop_slapd() { - echo -n " slapd" - reason="`start-stop-daemon --stop --quiet --oknodo --retry 10 \ - --pidfile "$SLAPD_PIDFILE" \ - --exec /usr/sbin/slapd 2>&1`" -} - -# Stop the slurpd daemon and capture the error message (if any) to -# $reason. -stop_slurpd() { - if [ "$SLURPD_START" != yes ]; then - return 0 - fi - echo -n " slurpd" - reason="`start-stop-daemon --stop --quiet --oknodo --retry 10 \ - --exec /usr/sbin/slurpd 2>&1`" -} - -# Start the OpenLDAP daemons -start() { - echo -n "Starting OpenLDAP:" - trap 'report_failure' 0 - if [ "$TRY_BDB_RECOVERY" = "yes" ]; then - try_fix_db - fi - start_slapd - start_slurpd - trap "-" 0 - echo . -} - -# Stop the OpenLDAP daemons -stop() { - echo -n "Stopping OpenLDAP:" - trap 'report_failure' 0 - stop_slurpd - stop_slapd - trap "-" 0 - echo . -} - -case "$1" in - start) - start ;; - stop) - stop ;; - restart|force-reload) - stop - start - ;; - *) - echo "Usage: $0 {start|stop|restart|force-reload}" - exit 1 - ;; -esac