]> granicus.if.org Git - postgresql/commitdiff
Make Linux startup support sh and csh.
authorBruce Momjian <bruce@momjian.us>
Tue, 28 Apr 1998 03:25:33 +0000 (03:25 +0000)
committerBruce Momjian <bruce@momjian.us>
Tue, 28 Apr 1998 03:25:33 +0000 (03:25 +0000)
contrib/linux/postgres.init.csh [moved from contrib/linux/postgres.init with 89% similarity]
contrib/linux/postgres.init.sh [new file with mode: 0755]

similarity index 89%
rename from contrib/linux/postgres.init
rename to contrib/linux/postgres.init.csh
index b47d7a8482f14361c69748a8e2da95a0251547dd..ebe9d70c84f854cd2dd988350dc3bea04101c17a 100755 (executable)
@@ -11,7 +11,6 @@
 # and then set USE_SYSLOG to "yes" below
 #
 #PGBIN="/opt/postgres/current/bin"     # not used
-
 PGACCOUNT="postgres"           # the postgres account (you called it something else?)
 POSTMASTER="postmaster"                # this probably won't change
 
@@ -19,7 +18,8 @@ USE_SYSLOG="yes"              # "yes" to enable syslog, "no" to go to /tmp/postgres.log
 FACILITY="local5"              # can assign local0-local7 as the facility for logging
 PGLOGFILE="/tmp/postgres.log"  # only used if syslog is disabled
 
-PGOPTS="-i -B 2048"
+PGOPTS="-B 256"
+#PGOPTS="-i -B 256"    # -i to enable TCP/IP rather than Unix socket
 
 # Source function library.
 . /etc/rc.d/init.d/functions
@@ -39,12 +39,13 @@ fi
 # See how we were called.
 case "$1" in
   start)
-       if [ -f ${PGLOGFILE} ]
+       if [ -f ${PGLOGFILE} ]
        then
                mv ${PGLOGFILE} ${PGLOGFILE}.old
        fi
        echo -n "Starting postgres: "
 # force full login to get path names
+# my postgres runs SH/BASH so use proper syntax in redirection...
        if [ ${USE_SYSLOG} = "yes" ]; then
                su - ${PGACCOUNT} -c "(${POSTMASTER} ${PGOPTS} 2>&1 | logger -p ${FACILITY}.notice) &" > /dev/null 2>&1 &
        else
@@ -53,19 +54,16 @@ case "$1" in
        sleep 5
        pid=`pidof ${POSTMASTER}`
        echo -n "${POSTMASTER} [$pid]"
-       sleep 2
 #      touch /var/lock/subsys/${POSTMASTER}
-# use the name of the symlink
-       touch /var/lock/subsys/postgres
        echo
        ;;
   stop)
-       echo -n "Stopping postgres: "
+       echo -n "Stopping postgres: "
        pid=`pidof ${POSTMASTER}`
        if [ "$pid" != "" ] ; then
                echo -n "${POSTMASTER} [$pid]"
                kill -TERM $pid
-               sleep 3
+               sleep 1
        fi
        echo
        ;;
diff --git a/contrib/linux/postgres.init.sh b/contrib/linux/postgres.init.sh
new file mode 100755 (executable)
index 0000000..43da349
--- /dev/null
@@ -0,0 +1,75 @@
+#!/bin/sh
+#
+# postgres.init Start postgres back end system.
+#
+# Author:       Thomas Lockhart <lockhart@alumni.caltech.edu>
+#               modified from other startup files in the RedHat Linux distribution
+#
+# This version can log backend output through syslog using the local5 facility.
+# To enable this, edit /etc/syslog.conf to include a line similar to:
+#   local5.*  /var/log/postgres
+# and then set USE_SYSLOG to "yes" below
+#
+#PGBIN="/opt/postgres/current/bin"     # not used
+PGACCOUNT="postgres"           # the postgres account (you called it something else?)
+POSTMASTER="postmaster"                # this probably won't change
+
+USE_SYSLOG="yes"               # "yes" to enable syslog, "no" to go to /tmp/postgres.log
+FACILITY="local5"              # can assign local0-local7 as the facility for logging
+PGLOGFILE="/tmp/postgres.log"  # only used if syslog is disabled
+
+PGOPTS="-B 256"
+#PGOPTS="-i -B 256"    # -i to enable TCP/IP rather than Unix socket
+
+# Source function library.
+. /etc/rc.d/init.d/functions
+
+# Get config.
+. /etc/sysconfig/network
+
+# Check that networking is up.
+# Pretty much need it for postmaster.
+if [ ${NETWORKING} = "no" ]
+then
+       exit 0
+fi
+
+#[ -f ${PGBIN}/${POSTMASTER} ] || exit 0
+
+# See how we were called.
+case "$1" in
+  start)
+       if [ -f ${PGLOGFILE} ]
+       then
+               mv ${PGLOGFILE} ${PGLOGFILE}.old
+       fi
+       echo -n "Starting postgres: "
+# force full login to get path names
+# my postgres runs CSH/TCSH so use proper syntax in redirection...
+       if [ ${USE_SYSLOG} = "yes" ]; then
+               su - ${PGACCOUNT} -c "(${POSTMASTER} ${PGOPTS} |& logger -p ${FACILITY}.notice) &" > /dev/null&
+       else
+               su - ${PGACCOUNT} -c "${POSTMASTER} ${PGOPTS} >>&! ${PGLOGFILE} &" > /dev/null&
+       fi
+       sleep 5
+       pid=`pidof ${POSTMASTER}`
+       echo -n "${POSTMASTER} [$pid]"
+#      touch /var/lock/subsys/${POSTMASTER}
+       echo
+       ;;
+  stop)
+       echo -n "Stopping postgres: "
+       pid=`pidof ${POSTMASTER}`
+       if [ "$pid" != "" ] ; then
+               echo -n "${POSTMASTER} [$pid]"
+               kill -TERM $pid
+               sleep 1
+       fi
+       echo
+       ;;
+  *)
+       echo "Usage: $0 {start|stop}"
+       exit 1
+esac
+
+exit 0