There are 2 problems:

1.  The "su" commands for start/stop/restart/status are in the form of "su -".  This picks up the environment of the postgres user, which wipes out the environment variables that were set earlier in this script (e.g., PGDATA).  Quick solution is to remove the extra dashes.

2.  (Not necessarily a problem!) Scripts default to not allow TCP/IP connections.  Adding -o "-i" to start and restart fixed this problem.  This is understandable from a security standpoint.  Maybe an environment variable could be set in the "Editable" portion of the script which would turn this on or off, or at least a set of parameters to pass to postmaster.

Here's a diff against 7.1 (release) that represents my current startup script:


$ diff -u /usr/local/src/postgresql-7.1/contrib/start-scripts/linux /etc/rc.d/init.d/postgres
--- /usr/local/src/postgresql-7.1/contrib/start-scripts/linux   Thu Feb  8 14:53:33 2001
+++ /etc/rc.d/init.d/postgres   Wed Apr 18 07:48:53 2001
@@ -64,21 +64,21 @@
 case $1 in
   start)
        $ECHO_N "Starting PostgreSQL: "$ECHO_C
-       su - $PGUSER -c "$DAEMON start -s -l $PGLOG"
+       su $PGUSER -c "$DAEMON start -o "-i" -s -l $PGLOG"
        echo "ok"
        ;;
   stop)
        echo -n "Stopping PostgreSQL: "
-       su - $PGUSER -c "$DAEMON stop -s -m fast"
+       su $PGUSER -c "$DAEMON stop -s -m fast"
        echo "ok"
        ;;
   restart)
        echo -n "Restarting PostgreSQL: "
-       su - $PGUSER -c "$DAEMON restart -s -m fast"
+       su $PGUSER -c "$DAEMON restart -o "-i" -s -m fast"
        echo "ok"
        ;;
   status)
-       su - $PGUSER -c "$DAEMON status"
+       su $PGUSER -c "$DAEMON status"
        ;;
   *)
        # Print help

Reply via email to