diff --git a/etc/init.d/dm-postgresql b/etc/init.d/dm-postgresql
index 99c9ffa4a8131bc057f63c22ae43b0658a137eaa..5529c22f3515521e01f52034c424729937f29306 100755
--- a/etc/init.d/dm-postgresql
+++ b/etc/init.d/dm-postgresql
@@ -72,8 +72,7 @@ PGROOT=$DM_SUPPORT_DIR/postgresql/$DM_HOST_ARCH
 PGENGINE=$PGROOT/bin
 #PGUSER=dm
 PGUSER=`whoami`
-PGGROUPID=`id $PGUSER | cut -f1`
-PGGROUP=`getent group $PGGROUPID | cut -d: -f1`
+PGGROUP=`groups $PGUSER | cut -f3 -d ' '`
 PGPORT=11136    # 111-DM
 PGDATA=$PGROOT/data
 
@@ -84,9 +83,9 @@ PGSTARTUPLOG=$PGLOGDIR/postgresql
 PGPIDFILE=$PGRUNDIR/postmaster.pid
 PGLOCKFILE=$PGRUNDIR/postmaster.lock
 
-mkdir -p $PGDATA && chown -R $PGUSER:$PGGROUP $PGDATA
-mkdir -p $PGRUNDIR && chown -R $PGUSER:$PGGROUP $PGRUNDIR
-mkdir -p $PGLOGDIR && chown -R $PGUSER:$PGGROUP $PGLOGDIR
+mkdir -p $PGDATA && chown -R $PGUSER:$PGGROUP $PGDATA || exit 1
+mkdir -p $PGRUNDIR && chown -R $PGUSER:$PGGROUP $PGRUNDIR || exit 1
+mkdir -p $PGLOGDIR && chown -R $PGUSER:$PGGROUP $PGLOGDIR || exit 1
 
 export PGDATA
 export PGPORT