Here is a patch that provides the status action functionality for nmbd,
smbd, and winbindd.  I developed this against Ubuntu and am submitting
this for inclusion in Debian.  Thanks to Steve for his copious feedback
on IRC.

Note that the hunk dealing with the debian/control file may need to be
tweaked based on the acceptance of the patch for [1] being accepted into
lsb-based and released.

[1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=490095

-- 
:-Dustin

Dustin Kirkland
Ubuntu Server Developer
Canonical, LTD
[EMAIL PROTECTED]
GPG: 1024D/83A61194
diff -uprN samba.debian.orig/samba-3.0.30/debian/control samba.debian/samba-3.0.30/debian/control
--- samba.debian.orig/samba-3.0.30/debian/control	2008-07-09 18:55:28.000000000 -0500
+++ samba.debian/samba-3.0.30/debian/control	2008-07-09 19:02:51.000000000 -0500
@@ -9,7 +9,7 @@ Standards-Version: 3.8.0
 
 Package: samba
 Architecture: any
-Depends: samba-common (= ${binary:Version}), logrotate, ${shlibs:Depends}, ${misc:Depends}, libpam-runtime (>= 0.76-13.1), libpam-modules, lsb-base (>= 3.0-6), procps, update-inetd, adduser
+Depends: samba-common (= ${binary:Version}), logrotate, ${shlibs:Depends}, ${misc:Depends}, libpam-runtime (>= 0.76-13.1), libpam-modules, lsb-base (>= 3.2-13), procps, update-inetd, adduser
 Suggests: openbsd-inetd | inet-superserver, smbldap-tools
 Replaces: samba-common (<= 2.0.5a-2)
 Description: a LanManager-like file and printer server for Unix
diff -uprN samba.debian.orig/samba-3.0.30/debian/samba.init samba.debian/samba-3.0.30/debian/samba.init
--- samba.debian.orig/samba-3.0.30/debian/samba.init	2008-07-09 18:55:28.000000000 -0500
+++ samba.debian/samba-3.0.30/debian/samba.init	2008-07-09 19:02:51.000000000 -0500
@@ -98,8 +98,22 @@ case "$1" in
 		sleep 1
 		$0 start
 		;;
+        status)
+		status="0"
+		NMBD_DISABLED=`testparm -s --parameter-name='disable netbios' 2>/dev/null`
+		if [ "$NMBD_DISABLED" != "Yes" ]; then
+			status_of_proc -p $NMBDPID /usr/sbin/nmbd nmbd || status=$?
+		fi
+		if [ "$RUN_MODE" != "inetd" ]; then
+			status_of_proc -p $SMBDPID /usr/sbin/smbd smbd || status=$?
+		fi
+		if [ "$NMBD_DISABLED" = "Yes" -a "$RUN_MODE" = "inetd" ]; then
+			status="4"
+		fi
+		exit $status
+		;;
 	*)
-		echo "Usage: /etc/init.d/samba {start|stop|reload|restart|force-reload}"
+		echo "Usage: /etc/init.d/samba {start|stop|reload|restart|force-reload|status}"
 		exit 1
 		;;
 esac
diff -uprN samba.debian.orig/samba-3.0.30/debian/winbind.init samba.debian/samba-3.0.30/debian/winbind.init
--- samba.debian.orig/samba-3.0.30/debian/winbind.init	2008-07-09 18:55:28.000000000 -0500
+++ samba.debian/samba-3.0.30/debian/winbind.init	2008-07-09 19:02:51.000000000 -0500
@@ -16,6 +16,7 @@ PATH=/sbin:/bin:/usr/sbin:/usr/bin
 
 DAEMON=/usr/sbin/winbindd
 PIDDIR=/var/run/samba
+WINBINDPID=$PIDDIR/winbindd.pid
 
 # clear conflicting settings from the environment
 unset TMPDIR
@@ -47,8 +48,11 @@ case "$1" in
 		$0 stop && sleep 2 && $0 start
 		;;
 
+	status)
+		status_of_proc -p $WINBINDPID $DAEMON winbind && exit 0 || exit $?
+
 	*)
-		echo "Usage: /etc/init.d/winbind {start|stop|restart|force-reload}"
+		echo "Usage: /etc/init.d/winbind {start|stop|restart|force-reload|status}"
 		exit 1
 		;;
 esac

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to