15758029 SUNBT7116639 Winbind SMF service should detect its failure s11-update
authorVladimir Marek <Vladimir.Marek@oracle.com>
Thu, 31 Jan 2013 20:17:38 +0100
branchs11-update
changeset 2510 09d60cb7ba56
parent 2507 bdc001f3484f
child 2512 431335c2438f
15758029 SUNBT7116639 Winbind SMF service should detect its failure
components/samba/samba/Solaris/samba.sh
--- a/components/samba/samba/Solaris/samba.sh	Wed Feb 27 09:24:20 2013 -0800
+++ b/components/samba/samba/Solaris/samba.sh	Thu Jan 31 20:17:38 2013 +0100
@@ -22,13 +22,32 @@
 #
 
 #
-# Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 
 . /lib/svc/share/smf_include.sh
 
 SAMBA_CONFIG=/etc/samba/smb.conf
 
+# Check if given service is working properly
+check_running() {
+	case "$SMF_FMRI" in
+		svc:/network/winbind:*)
+			# It takes some time before winbind starts to really work
+			# This is infinite loop which will be killed after smf timeout
+			while : ; do
+				sleep 2
+				PING=`/usr/bin/wbinfo --ping-dc 2>&1`
+				if [ $? -eq 0 ]; then
+					break
+				fi
+				echo "$PING"
+			done
+			;;
+	esac
+	return 0
+}
+
 case "$1" in
 	start)
 		if [ ! -f "$SAMBA_CONFIG" ]; then
@@ -39,6 +58,7 @@
 		# Command to execute is found in second and further script arguments
 		shift
 		eval "$@"
+		check_running
 		;;
 	stop)
 		# kill whole contract group