--- /dev/null
+#!/bin/sh
+# ctdb event script for Netbios Name Services
+
+[ -n "$CTDB_BASE" ] || \
+ CTDB_BASE=$(d=$(dirname "$0") ; cd -P "$d" ; dirname "$PWD")
+
+. "${CTDB_BASE}/functions"
+
+detect_init_style
+
+case $CTDB_INIT_STYLE in
+ suse)
+ CTDB_SERVICE_NMB=${CTDB_SERVICE_NMB:-nmb}
+ ;;
+ debian)
+ CTDB_SERVICE_NMB=${CTDB_SERVICE_NMB:-nmbd}
+ ;;
+ *)
+ # Use redhat style as default:
+ CTDB_SERVICE_NMB=${CTDB_SERVICE_NMB:-""}
+ ;;
+esac
+
+service_name="netbios"
+
+load_script_options
+
+ctdb_setup_state_dir "service" "$service_name"
+
+service_start ()
+{
+ # make sure nmbd is not already started
+ service "$CTDB_SERVICE_NMB" stop > /dev/null 2>&1
+ killall -0 -q nmbd && {
+ sleep 1
+ # make absolutely sure nmbd is dead
+ killall -q -9 nmbd
+ }
+
+ # start Samba nmbd service. Start it reniced, as under very heavy load
+ # the number of smbd processes will mean that it leaves few cycles
+ # for anything else
+ nice_service "$CTDB_SERVICE_NMB" start || die "Failed to start nmbd"
+}
+
+service_stop ()
+{
+ service "$CTDB_SERVICE_NMB" stop
+}
+
+###########################
+
+case "$1" in
+startup)
+ service_start
+ ;;
+
+shutdown)
+ service_stop
+ ;;
+
+esac
+
+exit 0
case $CTDB_INIT_STYLE in
suse)
CTDB_SERVICE_SMB=${CTDB_SERVICE_SMB:-smb}
- CTDB_SERVICE_NMB=${CTDB_SERVICE_NMB:-nmb}
;;
debian)
CTDB_SERVICE_SMB=${CTDB_SERVICE_SMB:-smbd}
- CTDB_SERVICE_NMB=${CTDB_SERVICE_NMB:-nmbd}
;;
*)
# Use redhat style as default:
CTDB_SERVICE_SMB=${CTDB_SERVICE_SMB:-smb}
- CTDB_SERVICE_NMB=${CTDB_SERVICE_NMB:-""}
;;
esac
{
# make sure samba is not already started
service "$CTDB_SERVICE_SMB" stop > /dev/null 2>&1
- if [ -n "$CTDB_SERVICE_NMB" ] ; then
- service "$CTDB_SERVICE_NMB" stop > /dev/null 2>&1
- fi
killall -0 -q smbd && {
sleep 1
# make absolutely sure samba is dead
killall -q -9 smbd
}
- killall -0 -q nmbd && {
- sleep 1
- # make absolutely sure samba is dead
- killall -q -9 nmbd
- }
-
# start Samba service. Start it reniced, as under very heavy load
# the number of smbd processes will mean that it leaves few cycles
# for anything else
- if [ -n "$CTDB_SERVICE_NMB" ] ; then
- nice_service "$CTDB_SERVICE_NMB" start || die "Failed to start nmbd"
- fi
-
nice_service "$CTDB_SERVICE_SMB" start || die "Failed to start samba"
}
{
service "$CTDB_SERVICE_SMB" stop
program_stack_traces "smbd" 5
- if [ -n "$CTDB_SERVICE_NMB" ] ; then
- service "$CTDB_SERVICE_NMB" stop
- fi
}
######################################################################
CTDB_MONITOR_MPDEVICES
# 31.clamd
CTDB_CLAMD_SOCKET
+# 48.netbios
+CTDB_SERVICE_NMB
# 49.winbind
CTDB_SERVICE_WINBIND
# 50.samba
CTDB_SAMBA_CHECK_PORTS
CTDB_SAMBA_SKIP_SHARE_CHECK
-CTDB_SERVICE_NMB
CTDB_SERVICE_SMB
# 60.nfs
CTDB_NFS_CALLOUT
--- /dev/null
+#!/bin/sh
+
+. "${TEST_SCRIPTS_DIR}/unit.sh"
+
+define_test "shutdown, Debian init style"
+
+setup
+
+export EVENTSCRIPT_TESTS_INIT_STYLE="debian"
+
+ok <<EOF
+Stopping nmbd: OK
+EOF
+simple_test
--- /dev/null
+#!/bin/sh
+
+. "${TEST_SCRIPTS_DIR}/unit.sh"
+
+define_test "shutdown, Debian init style"
+
+setup
+
+export EVENTSCRIPT_TESTS_INIT_STYLE="debian"
+
+ok <<EOF
+Starting nmbd: OK
+EOF
+simple_test
ok <<EOF
Stopping smbd: OK
-Stopping nmbd: OK
EOF
simple_test
export EVENTSCRIPT_TESTS_INIT_STYLE="debian"
ok <<EOF
-Starting nmbd: OK
Starting smbd: OK
EOF
simple_test
--- /dev/null
+setup ()
+{
+ service_name="netbios"
+
+ if [ "$1" != "down" ] ; then
+
+ debug "Marking Netbios name services as up, listening and managed by CTDB"
+
+ # All possible service names for all known distros.
+ for i in "nmb" "nmbd" ; do
+ service "$i" force-started
+ done
+ else
+ debug "Marking Netbios name services as down, not listening and not managed by CTDB"
+
+ # All possible service names for all known distros.
+ for i in "nmb" "nmbd" ; do
+ service "$i" force-stopped
+ done
+ fi
+}
debug "Marking Samba services as up, listening and managed by CTDB"
# All possible service names for all known distros.
- for i in "smb" "nmb" "samba" "smbd" "nmbd" ; do
+ for i in "smb" "samba" "smbd" ; do
service "$i" force-started
done
debug "Marking Samba services as down, not listening and not managed by CTDB"
# All possible service names for all known distros.
- for i in "smb" "nmb" "samba" "smbd" "nmbd" ; do
+ for i in "smb" "samba" "smbd" ; do
service "$i" force-stopped
done