[Pkg-openldap-devel] Bug#385898: slapd: add lsb logging

David Härdeman david at hardeman.nu
Wed Sep 6 18:46:59 UTC 2006


Okey, I've attached a new version of the lsb patch which reduces the 
verbose messages to be a bit more in line with what other init.d scripts 
print.

Hopefully you'll find this patch acceptable, otherwise I'm open to 
suggestions on how to add lsb logging to slapd...

-- 
David Härdeman
-------------- next part --------------
diff -ur ./openldap2.3-2.3.25.orig/debian/control ./openldap2.3-2.3.25/debian/control
--- ./openldap2.3-2.3.25.orig/debian/control	2006-09-06 20:13:07.000000000 +0200
+++ ./openldap2.3-2.3.25/debian/control	2006-09-06 20:13:37.000000000 +0200
@@ -12,7 +12,7 @@
 Priority: optional
 Architecture: any
 Pre-Depends: debconf (>= 0.5) | debconf-2.0
-Depends: ${shlibs:Depends}, coreutils (>= 4.5.1-1), psmisc, perl (>> 5.8.0) | libmime-base64-perl, libldap-2.3-0 (= ${Source-Version}), adduser
+Depends: ${shlibs:Depends}, coreutils (>= 4.5.1-1), psmisc, perl (>> 5.8.0) | libmime-base64-perl, libldap-2.3-0 (= ${Source-Version}), adduser, lsb-base (>= 3.0-10)
 Recommends: db4.2-util, libsasl2-modules
 Suggests: ldap-utils
 Conflicts: umich-ldapd, ldap-server, libbind-dev, bind-dev, libltdl3 (= 1.5.4-1)
diff -ur ./openldap2.3-2.3.25.orig/debian/slapd.init ./openldap2.3-2.3.25/debian/slapd.init
--- ./openldap2.3-2.3.25.orig/debian/slapd.init	2006-09-06 20:13:07.000000000 +0200
+++ ./openldap2.3-2.3.25/debian/slapd.init	2006-09-06 20:38:10.000000000 +0200
@@ -9,6 +9,9 @@
 # Stop processing if slapd is not there
 [ -x /usr/sbin/slapd ] || exit 0
 
+# Use LSB logging functions
+. /lib/lsb/init-functions
+
 # Source the init script configuration
 if [ -f "/etc/default/slapd" ]; then
 	. /etc/default/slapd
@@ -24,15 +27,8 @@
 
 # Stop processing if the config file is not there
 if [ ! -r "$SLAPD_CONF" ]; then
-  cat <<EOF >&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?
+	log_warning_msg "No configuration file was found for slapd at $SLAPD_CONF."
+	exit 1
 fi
 
 # Figure out some default settings
@@ -54,10 +50,7 @@
 # XXX: Breaks upgrading if there is no pidfile (invoke-rc.d stop will fail)
 # -- Torsten
 if [ -z "$SLAPD_PIDFILE" ]; then
-	cat <<EOF >&2
-The pidfile for slapd is neither specified in "$SLAPD_CONF" nor
-in /etc/default/slapd. Consequently, slapd will not be started.
-EOF
+	log_failure_msg "The pidfile for slapd has not been specified"
 	exit 1
 fi
 
@@ -73,37 +66,25 @@
 # Tell the user that something went wrong and give some hints for
 # resolving the problem.
 report_failure() {
+	log_end_msg 1
 	if [ -n "$reason" ]; then
-		echo " - failed: "
-		echo "$reason"
+		log_failure_msg "$reason"
 	else
-		echo " - failed."
-		cat <<EOF
-The operation failed but no output was produced. For hints on what went
-wrong please refer to the system's logfiles (e.g. /var/log/syslog) or
-try running the daemon in Debug mode like via "slapd -d 16383" (warning:
-this will create copious output).
-EOF
+		log_failure_msg "The operation failed but no output was produced."
 
 		if [ -n "$SLURPD_OPTIONS" -o \
 		     -n "$SLAPD_OPTIONS" -o \
 		     -n "$SLAPD_SERVICES" ]; then
-			cat << EOF
-
-Below, you can find the command line options used by this script to 
-run slapd and slurpd. Do not forget to specify those options if you
-want to look to debugging output:
-EOF
 	                if [ -z "$SLAPD_SERVICES" ]; then
 				if [ -n "$SLAPD_OPTIONS" ]; then
-					echo "  slapd $SLAPD_OPTIONS"
+					log_failure_msg "Command line used: slapd $SLAPD_OPTIONS"
 				fi
                 	else
-                        	echo "  slapd -h '$SLAPD_SERVICES' $SLAPD_OPTIONS"
+                        	log_failure_msg "Command line used: slapd -h '$SLAPD_SERVICES' $SLAPD_OPTIONS"
                 	fi
 
                 	if [ "$SLURPD" = "yes" -a -n "$SLURPD_OPTIONS" ]; then
-                       		echo "  slurpd $SLURPD_OPTIONS"
+                       		log_failure_msg "Command line used: slurpd $SLURPD_OPTIONS"
                 	fi
 		fi
 	fi
@@ -112,7 +93,6 @@
 # Start the slapd daemon and capture the error message if any to 
 # $reason.
 start_slapd() {
-	echo -n " slapd"
 	if [ -z "$SLAPD_SERVICES" ]; then
 		reason="`start-stop-daemon --start --quiet --oknodo \
 			--pidfile "$SLAPD_PIDFILE" \
@@ -127,10 +107,6 @@
 # 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`"
 }
@@ -138,7 +114,6 @@
 # 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`"
@@ -147,32 +122,37 @@
 # 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
+	log_daemon_msg "Starting OpenLDAP" "slapd"
 	start_slapd
-	start_slurpd
+	if [ "$SLURPD_START" = "yes" ]; then
+		log_progress_msg "slurpd"
+		start_slurpd
+	fi
 	trap "-" 0
-	echo .
+	log_end_msg 0
 }
 
 # Stop the OpenLDAP daemons
 stop() {
-	echo -n "Stopping OpenLDAP:"
 	trap 'report_failure' 0
-	stop_slurpd
-	stop_slapd
+	if [ "$SLURPD_START" = "yes" ]; then
+		log_daemon_msg "Stopping OpenLDAP" "slurpd"
+		stop_slurpd
+		log_progress_msg "slapd"
+		stop_slapd
+	else
+		log_daemon_msg "Stopping OpenLDAP" "slapd"
+		stop_slapd
+	fi
 	trap "-" 0
-	echo .
+	log_end_msg 0
 }
 
 case "$1" in


More information about the Pkg-openldap-devel mailing list