From 77bc683869b38b300a7192a23668a1d36dd82e9c Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Tue, 28 Apr 1998 03:25:33 +0000 Subject: [PATCH] Make Linux startup support sh and csh. --- .../{postgres.init => postgres.init.csh} | 14 ++-- contrib/linux/postgres.init.sh | 75 +++++++++++++++++++ 2 files changed, 81 insertions(+), 8 deletions(-) rename contrib/linux/{postgres.init => postgres.init.csh} (89%) create mode 100755 contrib/linux/postgres.init.sh diff --git a/contrib/linux/postgres.init b/contrib/linux/postgres.init.csh similarity index 89% rename from contrib/linux/postgres.init rename to contrib/linux/postgres.init.csh index b47d7a8482..ebe9d70c84 100755 --- a/contrib/linux/postgres.init +++ b/contrib/linux/postgres.init.csh @@ -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 index 0000000000..43da349d27 --- /dev/null +++ b/contrib/linux/postgres.init.sh @@ -0,0 +1,75 @@ +#!/bin/sh +# +# postgres.init Start postgres back end system. +# +# Author: Thomas Lockhart +# 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 -- 2.40.0