Eventscripts: print a message when reconfiguring a service.
[sahlberg/ctdb.git] / config / functions
index 610085b67700feb1faad5c715df79cb506ff4cde..8dac161940da20d5550b76193da8d608cbd95873 100755 (executable)
@@ -375,7 +375,10 @@ startstop_nfs() {
                        service nfsserver stop > /dev/null 2>&1
                        ;;
                restart)
-                       service nfsserver restart
+                       echo 0 >/proc/fs/nfsd/threads
+                       service nfsserver stop > /dev/null 2>&1
+                       pkill -9 nfsd
+                       service nfsserver start
                        ;;
                esac
                ;;
@@ -390,8 +393,12 @@ startstop_nfs() {
                        service nfslock stop > /dev/null 2>&1
                        ;;
                restart)
-                       service nfslock restart
-                       service nfs restart
+                       echo 0 >/proc/fs/nfsd/threads
+                       service nfs stop > /dev/null 2>&1
+                       service nfslock stop > /dev/null 2>&1
+                       pkill -9 nfsd
+                       service nfslock start
+                       service nfs start
                        ;;
                esac
                ;;
@@ -571,6 +578,19 @@ ctdb_check_counter_limit () {
        echo "WARNING: less than $_limit consecutive failures ($_size) for $service_name, not unhealthy yet"
     fi
 }
+ctdb_check_counter_equal () {
+    _ctdb_counter_common
+
+    _limit=$1
+
+    # unary counting!
+    _size=$(stat -c "%s" "$_counter_file" 2>/dev/null || echo 0)
+    if [ $_size -eq $_limit ] ; then
+       return 1
+    fi
+    return 0
+}
+
 ########################################################
 
 ctdb_spool_dir="/var/spool/ctdb"
@@ -631,6 +651,7 @@ ctdb_service_unset_reconfigure ()
 
 ctdb_service_reconfigure ()
 {
+    echo "Reconfiguring service \"$service_name\"..."
     if [ -n "$service_reconfigure" ] ; then
        eval $service_reconfigure
     else
@@ -649,49 +670,53 @@ ctdb_compat_managed_service ()
 
 is_ctdb_managed_service ()
 {
+    _service_name="${1:-${service_name}}"
+
     t=" $CTDB_MANAGED_SERVICES "
 
     ctdb_compat_managed_service "$CTDB_MANAGES_VSFTPD"   "vsftpd"
     ctdb_compat_managed_service "$CTDB_MANAGES_SAMBA"    "samba"
     ctdb_compat_managed_service "$CTDB_MANAGES_SCP"      "scp"
-    ctdb_compat_managed_service "$CTDB_MANAGES_WINDBIND" "windbind"
+    ctdb_compat_managed_service "$CTDB_MANAGES_WINBIND"  "winbind"
     ctdb_compat_managed_service "$CTDB_MANAGES_HTTPD"    "httpd"
     ctdb_compat_managed_service "$CTDB_MANAGES_ISCSI"    "iscsi"
     ctdb_compat_managed_service "$CTDB_MANAGES_CLAMD"    "clamd"
     ctdb_compat_managed_service "$CTDB_MANAGES_NFS"      "nfs"
+    ctdb_compat_managed_service "$CTDB_MANAGES_NFS"      "nfs-ganesha-gpfs"
 
-    # Returns 0 if "<space>$service_name<space>" appears in $t
-    [ "${t#* ${service_name} }" != "${t}" ]
+    # Returns 0 if "<space>$_service_name<space>" appears in $t
+    [ "${t#* ${_service_name} }" != "${t}" ]
 }
 
 ctdb_start_stop_service ()
 {
-    _active="$ctdb_active_dir/$service_name"
+    _service_name="${1:-${service_name}}"
 
-    if is_ctdb_managed_service ; then
+    _active="$ctdb_active_dir/$_service_name"
+    if is_ctdb_managed_service "$_service_name"; then
        if ! [ -e "$_active" ] ; then
-           echo "Starting service $service_name"
+           echo "Starting service $_service_name"
            ctdb_service_start || exit $?
            mkdir -p "$ctdb_active_dir"
            touch "$_active"
            exit 0
        fi
-    elif ! is_ctdb_managed_service ; then
+    else
        if [ -e "$_active" ] ; then
-           echo "Stopping service $service_name"
+           echo "Stopping service $_service_name"
            ctdb_service_stop || exit $?
            rm -f "$_active"
+           exit 0
        fi
-       exit 0
     fi
 }
 
 ctdb_service_start ()
 {
     if [ -n "$service_start" ] ; then
-       eval $service_start
+       eval $service_start || return $?
     else
-       service "$service_name" start
+       service "$service_name" start || return $?
     fi
     ctdb_counter_init
 }