--- resources/OCF/pgsql.dist	2008-02-03 23:30:34.000000000 -0500
+++ resources/OCF/pgsql	2008-02-20 08:55:01.000000000 -0500
@@ -168,8 +168,8 @@
 	status
 	monitor
 	methods	
-        meta-data
-        validate-all
+	meta-data
+	validate-all
 	!
 }
 
@@ -267,7 +267,7 @@
 #
 
 pgsql_status() {
-     pgrep -u  $OCF_RESKEY_pgdba "postmaster|postgres" >/dev/null 2>&1
+    runasowner "$OCF_RESKEY_pgctl -D $OCF_RESKEY_pgdata status >/dev/null 2>&1"
 }
 
 #
@@ -347,7 +347,7 @@
 if [ $# -ne 1 ]
 then
     usage
-    exit 1
+    exit $OCF_ERR_GENERIC
 fi
 
 : ${OCF_RESKEY_pgctl=/usr/bin/pg_ctl}
@@ -355,6 +355,7 @@
 : ${OCF_RESKEY_pgdata=/var/lib/pgsql/data}
 : ${OCF_RESKEY_pgdba=postgres}
 : ${OCF_RESKEY_pgport=5432}
+: ${OCF_RESKEY_start_opt="-p $OCF_RESKEY_pgport"}
 : ${OCF_RESKEY_pgdb=template1}
 : ${OCF_RESKEY_logfile=/dev/null}
 : ${OCF_RESKEY_stop_escalate=30}
@@ -368,49 +369,42 @@
     meta-data)  meta_data
                 exit $OCF_SUCCESS;;
 
-    stop)       if ! pgsql_status || ! pgsql_validate_all
-                then
-                   exit $OCF_SUCCESS
-                fi;;
-
-    monitor)    if ! pgsql_validate_all
-                then
-                   echo "Not running!"
-                   exit $OCF_NOT_RUNNING
-                else
-                   pgsql_monitor
-                   exit $?
-                fi;;
-
-    status)     if pgsql_status
-                then
-                    ocf_log info "PostgreSQL is up"
-                    exit $OCF_SUCCESS
-                else
-                    ocf_log info "PostgreSQL is down"
-                    exit $OCF_NOT_RUNNING
-                fi
-                exit $?;;
-
     validate-all) pgsql_validate_all
                 exit $?;;
 esac
 
-US=`id -u -n`
-
-if [ $US != root ]
+if ! pgsql_validate_all
 then
-    ocf_log err "$0 must be run as root"
-    exit 1
+    case "$1" in
+        stop)    exit $OCF_SUCCESS;;
+        monitor) exit $OCF_NOT_RUNNING;;
+        status)  exit $OCF_NOT_RUNNING;;
+        *)       exit $OCF_ERR_INSTALLED;;
+    esac
 fi
 
-if ! pgsql_validate_all
+US=`id -u -n`
+
+if [ $US != root -a $US != $OCF_RESKEY_pgdba ]
 then
-    exit $OCF_ERR_INSTALLED
+    ocf_log err "$0 must be run as root or $OCF_RESKEY_pgdba"
+    exit $OCF_ERR_GENERIC
 fi
 
 # What kind of method was invoked?
 case "$1" in
+    status)     if pgsql_status
+                then
+                    ocf_log info "PostgreSQL is up"
+                    exit $OCF_SUCCESS
+                else
+                    ocf_log info "PostgreSQL is down"
+                    exit $OCF_NOT_RUNNING
+                fi;;
+
+    monitor)    pgsql_monitor
+                exit $?;;
+
     start)      pgsql_start               
                 exit $?;;
 
