diff --git a/ctdb/config/events/legacy/48.netbios.script b/ctdb/config/events/legacy/48.netbios.script new file mode 100755 index 00000000000..bc4b9cb0ba9 --- /dev/null +++ b/ctdb/config/events/legacy/48.netbios.script @@ -0,0 +1,64 @@ +#!/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 diff --git a/ctdb/config/events/legacy/50.samba.script b/ctdb/config/events/legacy/50.samba.script index ce9e05f9756..b0e2fff1e09 100755 --- a/ctdb/config/events/legacy/50.samba.script +++ b/ctdb/config/events/legacy/50.samba.script @@ -11,16 +11,13 @@ detect_init_style 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 @@ -34,27 +31,14 @@ service_start () { # 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" } @@ -62,9 +46,6 @@ service_stop () { service "$CTDB_SERVICE_SMB" stop program_stack_traces "smbd" 5 - if [ -n "$CTDB_SERVICE_NMB" ] ; then - service "$CTDB_SERVICE_NMB" stop - fi } ###################################################################### diff --git a/ctdb/doc/examples/config_migrate.sh b/ctdb/doc/examples/config_migrate.sh index 8983105f1c9..2a63da0e952 100755 --- a/ctdb/doc/examples/config_migrate.sh +++ b/ctdb/doc/examples/config_migrate.sh @@ -241,12 +241,13 @@ CTDB_LVS_PUBLIC_IP 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 diff --git a/ctdb/tests/UNIT/eventscripts/48.netbios.shutdown.011.sh b/ctdb/tests/UNIT/eventscripts/48.netbios.shutdown.011.sh new file mode 100755 index 00000000000..06498138577 --- /dev/null +++ b/ctdb/tests/UNIT/eventscripts/48.netbios.shutdown.011.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +. "${TEST_SCRIPTS_DIR}/unit.sh" + +define_test "shutdown, Debian init style" + +setup + +export EVENTSCRIPT_TESTS_INIT_STYLE="debian" + +ok <