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