diff --git a/check_svcs b/check_svcs
new file mode 100755
index 0000000000000000000000000000000000000000..74a48ce38f57d5d9fc248a05a4ea2d65d1b80dc1
--- /dev/null
+++ b/check_svcs
@@ -0,0 +1,63 @@
+#!/bin/ksh
+
+PATH=/usr/bin
+export PATH
+
+VERBOSE=0
+SERVER=""
+
+SVCS="/usr/bin/svcs"
+RSH=ssh
+
+RC=0
+SL=""
+
+TMP="/tmp/check_svcs.$$"
+trap "/bin/rm -f ${TMP}" 0 1 2 15
+
+while test -n "$1"; do
+    case "$1" in
+        -v)     VERBOSE=1
+                ;;
+
+        -H)     SERVER="$2"
+                shift
+                ;;
+
+        *)      echo "$0: Invalid option: $1"
+                exit 1
+                ;;
+    esac
+    shift
+done
+
+if [ "$SERVER" = "" -o "$SERVER" = "localhost" -o "$SERVER" = "`/bin/uname -n`" ]; then
+    CMD="${SVCS} -x"
+else
+    CMD="$RSH -n ${SERVER} ${SVCS} -x"
+fi
+
+${CMD} 2>/dev/null >${TMP}
+RC=$?
+if [ $RC != 0 ]; then
+    echo "UNKNOWN - ${CMD} failed with code $RC"
+    exit -1
+fi
+
+RC=0
+
+nawk '($1 ~ /svc:*/) { print $1 }' <$TMP | while read svc; do
+	RC=1
+	SL="${SL} ${svc}"
+done
+
+case "$RC" in
+	0)
+		echo "OK - All services running"
+		exit 0
+		;;
+	1)
+		echo "WARNING - Services not running:${SL}"
+		exit 1
+		;;
+esac