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
signature.asc
Description: This is a digitally signed message part