--- resources/OCF/pgsql.old     2007-12-10 11:16:48.000000000 -0500
+++ resources/OCF/pgsql 2007-12-10 22:32:11.000000000 -0500
@@ -354,14 +354,6 @@
     exit 1
 fi

-US=`id -u -n`
-
-if [ $US != root ]
-then
-    ocf_log err "$0 must be run as root"
-    exit 1
-fi
-
 : ${OCF_RESKEY_pgctl=/usr/bin/pg_ctl}
 : ${OCF_RESKEY_psql=/usr/bin/psql}
 : ${OCF_RESKEY_pgdata=/var/lib/pgsql/data}
@@ -380,22 +372,29 @@
     meta-data)  meta_data
                 exit $OCF_SUCCESS;;

+    stop)       if ! pgsql_status
+                then
+                   exit $OCF_SUCCESS
+                fi;;
+
     validate-all) pgsql_validate_all
                 exit $?;;
 esac

-if ! pgsql_validate_all
+US=`id -u -n`
+
+if [ $US != root ]
 then
-    exit $OCF_ERR_CONFIGURED
+    ocf_log err "$0 must be run as root"
+    exit 1
 fi

-# What kind of method was invoked?
 case "$1" in
-    start)      pgsql_start
-                exit $?;;
-
-    stop)       pgsql_stop
-                exit $?;;
+    monitor)    if ! pgsql_status
+                then
+                   echo "Not running!"
+                   exit $OCF_NOT_RUNNING
+                fi;;

     status)     if pgsql_status
                 then
@@ -406,6 +405,20 @@
                     exit $OCF_NOT_RUNNING
                 fi
                 exit $?;;
+esac
+
+if ! pgsql_validate_all
+then
+    exit $OCF_ERR_CONFIGURED
+fi
+
+# What kind of method was invoked?
+case "$1" in
+    start)      pgsql_start
+                exit $?;;
+
+    stop)       pgsql_stop
+                exit $?;;

     monitor)    pgsql_monitor
                 exit $?;;
