From 26e1556819fd061efaac88875980771d1ebeb727 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnther=20Deschner?= <gd@samba.org> Date: Tue, 25 Feb 2020 15:04:41 +0100 Subject: [PATCH] ctdb-scripts: add new 48.netbios script for starting nmbd This change basically moves out nmbd references from 50.samba script to a new 48.netbios script. Accordingly ctdb test scripts are tweaked to cope with newly added script. Signed-off-by: Guenther Deschner <gd@samba.org> Reviewed-by: Martin Schwenke <martin@meltin.net> --- ctdb/config/events/legacy/48.netbios.script | 64 +++++++++++++++++++ ctdb/config/events/legacy/50.samba.script | 19 ------ ctdb/doc/examples/config_migrate.sh | 3 +- .../eventscripts/48.netbios.shutdown.011.sh | 14 ++++ .../eventscripts/48.netbios.startup.011.sh | 14 ++++ .../eventscripts/50.samba.shutdown.011.sh | 1 - .../UNIT/eventscripts/50.samba.startup.011.sh | 1 - .../UNIT/eventscripts/scripts/48.netbios.sh | 21 ++++++ .../UNIT/eventscripts/scripts/50.samba.sh | 4 +- 9 files changed, 117 insertions(+), 24 deletions(-) create mode 100755 ctdb/config/events/legacy/48.netbios.script create mode 100755 ctdb/tests/UNIT/eventscripts/48.netbios.shutdown.011.sh create mode 100755 ctdb/tests/UNIT/eventscripts/48.netbios.startup.011.sh create mode 100644 ctdb/tests/UNIT/eventscripts/scripts/48.netbios.sh 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 <<EOF +Stopping nmbd: OK +EOF +simple_test diff --git a/ctdb/tests/UNIT/eventscripts/48.netbios.startup.011.sh b/ctdb/tests/UNIT/eventscripts/48.netbios.startup.011.sh new file mode 100755 index 00000000000..40b90a10e65 --- /dev/null +++ b/ctdb/tests/UNIT/eventscripts/48.netbios.startup.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 <<EOF +Starting nmbd: OK +EOF +simple_test diff --git a/ctdb/tests/UNIT/eventscripts/50.samba.shutdown.011.sh b/ctdb/tests/UNIT/eventscripts/50.samba.shutdown.011.sh index a64696bf723..94867e0a71f 100755 --- a/ctdb/tests/UNIT/eventscripts/50.samba.shutdown.011.sh +++ b/ctdb/tests/UNIT/eventscripts/50.samba.shutdown.011.sh @@ -10,6 +10,5 @@ export EVENTSCRIPT_TESTS_INIT_STYLE="debian" ok <<EOF Stopping smbd: OK -Stopping nmbd: OK EOF simple_test diff --git a/ctdb/tests/UNIT/eventscripts/50.samba.startup.011.sh b/ctdb/tests/UNIT/eventscripts/50.samba.startup.011.sh index ce79767fb36..8c4699d45d2 100755 --- a/ctdb/tests/UNIT/eventscripts/50.samba.startup.011.sh +++ b/ctdb/tests/UNIT/eventscripts/50.samba.startup.011.sh @@ -9,7 +9,6 @@ setup export EVENTSCRIPT_TESTS_INIT_STYLE="debian" ok <<EOF -Starting nmbd: OK Starting smbd: OK EOF simple_test diff --git a/ctdb/tests/UNIT/eventscripts/scripts/48.netbios.sh b/ctdb/tests/UNIT/eventscripts/scripts/48.netbios.sh new file mode 100644 index 00000000000..f578399a3cd --- /dev/null +++ b/ctdb/tests/UNIT/eventscripts/scripts/48.netbios.sh @@ -0,0 +1,21 @@ +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 +} diff --git a/ctdb/tests/UNIT/eventscripts/scripts/50.samba.sh b/ctdb/tests/UNIT/eventscripts/scripts/50.samba.sh index 3ffe18a201e..51175dbe84a 100644 --- a/ctdb/tests/UNIT/eventscripts/scripts/50.samba.sh +++ b/ctdb/tests/UNIT/eventscripts/scripts/50.samba.sh @@ -7,7 +7,7 @@ setup () 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 @@ -21,7 +21,7 @@ setup () 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