mirror of https://github.com/postgres/postgres
contrib/init.d start script. Place into more aptly named directory. Maybe we could add scripts for other platforms here later.REL7_1_STABLE
parent
088c0b9546
commit
bbac19a973
@ -1,8 +0,0 @@ |
|||||||
postgresql -> This is a Linux distribution independent (or so I |
|
||||||
hope) init.d/rc.d script that makes use of pg_ctl. There is currently a |
|
||||||
few in ./contrib/linux of the pgsql source tree, but they are RedHat |
|
||||||
specific. This one is simple and self contained. |
|
||||||
|
|
||||||
--------------------------------------------------------------------------- |
|
||||||
| Ryan Kirkpatrick | Boulder, Colorado | http://www.rkirkpat.net/ | |
|
||||||
--------------------------------------------------------------------------- |
|
@ -1,69 +0,0 @@ |
|||||||
#! /bin/sh |
|
||||||
# |
|
||||||
# PostgreSQL Start, stop, and get status on the PostgreSQL RDMBS. |
|
||||||
# This script is Linux distribution independent |
|
||||||
# (or at least should be :). |
|
||||||
# |
|
||||||
# By Ryan Kirkpatrick <pgsql@rkirkpat.net>. |
|
||||||
# |
|
||||||
# If you find any problems with this script, or have suggestions |
|
||||||
# please send them to me. |
|
||||||
|
|
||||||
# Arguements for pg_ctl and then for the postmaster. Change as needed. |
|
||||||
ARGS="-w -D /usr/local/pgsql/data" |
|
||||||
PM_ARGS="-i -F" |
|
||||||
|
|
||||||
# Changes should not be needed beyond this point. |
|
||||||
|
|
||||||
# The path that is to be used for the script. |
|
||||||
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin |
|
||||||
|
|
||||||
# What to use to start up the postmster, and a few names. |
|
||||||
DAEMON=/usr/local/pgsql/bin/pg_ctl |
|
||||||
NAME=postmaster |
|
||||||
FILE=postgresql |
|
||||||
DESC="PostgreSQL RDBMS" |
|
||||||
|
|
||||||
# Who to run pg_ctl as, should be postgres. |
|
||||||
USER="postgres:postgres" |
|
||||||
|
|
||||||
# Where to keep a log file. |
|
||||||
LOG="/usr/local/pgsql/server.log" |
|
||||||
|
|
||||||
# Only start if we can find pg_ctl. |
|
||||||
test -f $DAEMON || exit 0 |
|
||||||
set -e |
|
||||||
|
|
||||||
# Parse command line parameters. |
|
||||||
case "$1" in |
|
||||||
start) |
|
||||||
# Start the postmaster using pg_ctl and given options. |
|
||||||
echo -n "Starting $DESC: " |
|
||||||
su - postgres sh -c "$DAEMON start $ARGS -o \"$PM_ARGS\" > $LOG 2>&1" |
|
||||||
echo "$NAME." |
|
||||||
;; |
|
||||||
stop) |
|
||||||
# Stop the postmaster using pg_ctl. |
|
||||||
echo -n "Stopping $DESC: " |
|
||||||
su - postgres sh -c "$DAEMON stop > /dev/null 2>&1" |
|
||||||
echo "$NAME." |
|
||||||
;; |
|
||||||
restart) |
|
||||||
# Restart the postmaster by calling ourselves. |
|
||||||
/etc/init.d/$FILE stop |
|
||||||
sleep 5 |
|
||||||
/etc/init.d/$FILE start |
|
||||||
;; |
|
||||||
status) |
|
||||||
# Print the status of the postmaster. |
|
||||||
su - postgres $DAEMON status |
|
||||||
;; |
|
||||||
*) |
|
||||||
# Print help. |
|
||||||
N=/etc/init.d/$FILE |
|
||||||
echo "Usage: $N {start|stop|restart|status}" >&2 |
|
||||||
exit 1 |
|
||||||
;; |
|
||||||
esac |
|
||||||
|
|
||||||
exit 0 |
|
@ -1,91 +0,0 @@ |
|||||||
#!/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" and FACILITY to "local5" below |
|
||||||
# |
|
||||||
#PGBIN="/opt/postgres/current/bin" # not used any more - thomas 1997-12-14 |
|
||||||
PGACCOUNT="postgres" # the postgres account (you called it something else?) |
|
||||||
POSTMASTER="postmaster" # this probably won't change |
|
||||||
|
|
||||||
USE_SOCKET="yes" # "no" to enable tcp/ip(remote) access |
|
||||||
PGSOCKETFILE="/tmp/.s.PGSQL.5432" |
|
||||||
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 1024 -S -o '-Fe' |
|
||||||
if [ ${USE_SOCKET} = "no" ] |
|
||||||
then |
|
||||||
PGOPTS="-i ${PGOPTS}" # -i to enable TCP/IP rather than Unix socket |
|
||||||
fi |
|
||||||
|
|
||||||
# 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 |
|
||||||
|
|
||||||
# Don't bother checking for file existance to avoid hardcoding any paths - thomas 1997-12-14 |
|
||||||
#[ -f ${PGBIN}/${POSTMASTER} ] || exit 0 |
|
||||||
|
|
||||||
# See how we were called. |
|
||||||
case "$1" in |
|
||||||
start) |
|
||||||
# force a stop to kill a running postmaster and to clean up sockets |
|
||||||
# necessary if system crashed (a power outage provoked this feature) |
|
||||||
eval $0 stop |
|
||||||
# save the old log file, if any |
|
||||||
if [ -f ${PGLOGFILE} ] |
|
||||||
then |
|
||||||
mv ${PGLOGFILE} ${PGLOGFILE}.old |
|
||||||
fi |
|
||||||
|
|
||||||
echo -n "Starting postgres: " |
|
||||||
|
|
||||||
# force full login to get path names |
|
||||||
# my postgres runs 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 |
|
||||||
if [ ${USE_SOCKET} = "yes" ] && [ -S ${PGSOCKETFILE} ]; then |
|
||||||
echo -n " (remove socket ${PGSOCKETFILE})" |
|
||||||
rm -f ${PGSOCKETFILE} |
|
||||||
fi |
|
||||||
echo |
|
||||||
;; |
|
||||||
*) |
|
||||||
echo "Usage: $0 {start|stop}" |
|
||||||
exit 1 |
|
||||||
esac |
|
||||||
|
|
||||||
exit 0 |
|
@ -1,162 +0,0 @@ |
|||||||
#!/bin/sh |
|
||||||
# |
|
||||||
# postgres.init.sh - This script is used to start/stop |
|
||||||
# the postgreSQL listener process. |
|
||||||
# |
|
||||||
# Usage |
|
||||||
# |
|
||||||
# You can use this script manually, and/or you |
|
||||||
# can install this script into the runlevel system |
|
||||||
# by running "sh postgres.init.sh install" |
|
||||||
# |
|
||||||
# Credits |
|
||||||
# |
|
||||||
# Thomas Lockhart <lockhart@alumni.caltech.edu> |
|
||||||
# modified from other startup files in the |
|
||||||
# RedHat Linux distribution |
|
||||||
# |
|
||||||
# Clark Evans <cce@clarkevans.com> |
|
||||||
# cleaned up, added comments, etc. |
|
||||||
# |
|
||||||
# RedHat Stuff |
|
||||||
# |
|
||||||
# chkconfig: 345 85 15 |
|
||||||
# description: Starts and stops the PostgreSQL backend daemon\ |
|
||||||
# that handles all database requests. |
|
||||||
# processname: postmaster |
|
||||||
# pidfile: /var/run/postmaster.pid |
|
||||||
# |
|
||||||
# |
|
||||||
# Note |
|
||||||
# |
|
||||||
# This version can log backend output through syslog using |
|
||||||
# the local5 facility. To enable this, set USE_SYSLOG to "yes" |
|
||||||
# below and then edit /etc/syslog.conf to include a line |
|
||||||
# similar to: |
|
||||||
# |
|
||||||
# local5.* /var/log/postgres |
|
||||||
# |
|
||||||
# Config Variables |
|
||||||
# |
|
||||||
PGACCOUNT="postgres" |
|
||||||
# |
|
||||||
# The non-root user account which will be used to run the |
|
||||||
# PostgreSQL executeable. For this script to work, the |
|
||||||
# shell for this account must be SH/BASH. |
|
||||||
# |
|
||||||
# The following lines should be in this account's .bash_profile |
|
||||||
# |
|
||||||
# PATH=$PATH:$HOME/bin |
|
||||||
# MANPATH=$MANPATH:/opt/pgsql/man |
|
||||||
# PGLIB=/opt/pgsql/lib |
|
||||||
# PGDATA=/opt/pgsql/data |
|
||||||
# |
|
||||||
POSTMASTER="postmaster" |
|
||||||
# |
|
||||||
# The executable program which is to be run, in this case |
|
||||||
# it is the listener, which waits for requests on the port |
|
||||||
# specified during configuration. |
|
||||||
# |
|
||||||
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 |
|
||||||
# |
|
||||||
# The B option sets the number of shared buffers |
|
||||||
# |
|
||||||
# Add the "-i" option to enable TCP/IP sockets in addition |
|
||||||
# to unix domain sockets. This is needed for Java's JDBC |
|
||||||
# |
|
||||||
# PGOPTS="-i" |
|
||||||
# |
|
||||||
# Add the -D option if you want to ovverride the PGDATA |
|
||||||
# environment variable defined in |
|
||||||
# |
|
||||||
# PGOPTS="-D/opt/pgsql/data |
|
||||||
# |
|
||||||
# Add the -p option if you would like the listener to |
|
||||||
# attach to a port other than the one configured (5432?) |
|
||||||
# |
|
||||||
# PGOPTS="-D/opt/pgsql_beta/data -p 5433" |
|
||||||
# |
|
||||||
|
|
||||||
# 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 /opt/pgsq//bin/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 PGDATA and PGLIB path names |
|
||||||
# Since the login script for ${PGACCOUNT} is SH/BASH compliant, |
|
||||||
# we use proper redirection syntax... |
|
||||||
# |
|
||||||
if [ ${USE_SYSLOG} = "yes" ]; then |
|
||||||
su - ${PGACCOUNT} -c "(${POSTMASTER} ${PGOPTS} 2>&1 | logger -p ${FACILITY}.notice) &" > /dev/null 2>&1 & |
|
||||||
else |
|
||||||
su - ${PGACCOUNT} -c "${POSTMASTER} ${PGOPTS} >> ${PGLOGFILE} 2>&1 &" > /dev/null 2>&1 & |
|
||||||
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 |
|
||||||
;; |
|
||||||
install) |
|
||||||
echo "Adding postgres to runlevel system." |
|
||||||
cp $0 /etc/rc.d/init.d/postgres |
|
||||||
/sbin/chkconfig --add postgres |
|
||||||
echo |
|
||||||
;; |
|
||||||
uninstall) |
|
||||||
echo "Deleting postgres from runlevel system." |
|
||||||
/sbin/chkconfig --del postgres |
|
||||||
rm /etc/rc.d/init.d/postgres |
|
||||||
echo |
|
||||||
;; |
|
||||||
*) |
|
||||||
echo "Usage: $0 {start|stop|install|uninstall}" |
|
||||||
exit 1 |
|
||||||
esac |
|
||||||
|
|
||||||
exit 0 |
|
@ -0,0 +1,90 @@ |
|||||||
|
#! /bin/sh |
||||||
|
|
||||||
|
# This is an example of a start/stop script for SysV-style init, such |
||||||
|
# as is used on Linux systems. You should edit some of the variables |
||||||
|
# and maybe the 'echo' commands. |
||||||
|
# |
||||||
|
# Place this file at /etc/init.d/postgresql (or |
||||||
|
# /etc/rc.d/init.d/postgresql) and make symlinks to |
||||||
|
# /etc/rc.d/rc0.d/K02postgresql |
||||||
|
# /etc/rc.d/rc1.d/K02postgresql |
||||||
|
# /etc/rc.d/rc2.d/K02postgresql |
||||||
|
# /etc/rc.d/rc3.d/S98postgresql |
||||||
|
# /etc/rc.d/rc4.d/S98postgresql |
||||||
|
# /etc/rc.d/rc5.d/S98postgresql |
||||||
|
# Or check out the chkconfig program, if you have it. |
||||||
|
# |
||||||
|
# Proper init scripts on Linux systems normally require setting lock |
||||||
|
# and pid files under /var/run as well as reacting to network |
||||||
|
# settings, so you should treat this with care. |
||||||
|
|
||||||
|
# Original author: Ryan Kirkpatrick <pgsql@rkirkpat.net> |
||||||
|
|
||||||
|
# $Header: /cvsroot/pgsql/contrib/start-scripts/linux,v 1.1 2001/02/08 19:53:33 petere Exp $ |
||||||
|
|
||||||
|
## EDIT FROM HERE |
||||||
|
|
||||||
|
# Installation prefix |
||||||
|
prefix=/usr/local/pgsql |
||||||
|
|
||||||
|
# Data directory |
||||||
|
PGDATA="/usr/local/pgsql/data" |
||||||
|
|
||||||
|
# Who to run pg_ctl as, should be "postgres". |
||||||
|
PGUSER=postgres |
||||||
|
|
||||||
|
# Where to keep a log file |
||||||
|
PGLOG="$PGDATA/serverlog" |
||||||
|
|
||||||
|
## STOP EDITING HERE |
||||||
|
|
||||||
|
export PGDATA |
||||||
|
|
||||||
|
# Check for echo -n vs echo \c |
||||||
|
if echo '\c' | grep -s c >/dev/null 2>&1 ; then |
||||||
|
ECHO_N="echo -n" |
||||||
|
ECHO_C="" |
||||||
|
else |
||||||
|
ECHO_N="echo" |
||||||
|
ECHO_C='\c' |
||||||
|
fi |
||||||
|
|
||||||
|
# The path that is to be used for the script |
||||||
|
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin |
||||||
|
|
||||||
|
# What to use to start up the postmaster |
||||||
|
DAEMON="$prefix/bin/pg_ctl" |
||||||
|
|
||||||
|
set -e |
||||||
|
|
||||||
|
# Only start if we can find pg_ctl. |
||||||
|
test -f $DAEMON || exit 0 |
||||||
|
|
||||||
|
# Parse command line parameters. |
||||||
|
case $1 in |
||||||
|
start) |
||||||
|
$ECHO_N "Starting PostgreSQL: "$ECHO_C |
||||||
|
su - $PGUSER -c "$DAEMON start -s -l $PGLOG" |
||||||
|
echo "ok" |
||||||
|
;; |
||||||
|
stop) |
||||||
|
echo -n "Stopping PostgreSQL: " |
||||||
|
su - $PGUSER -c "$DAEMON stop -s -m fast" |
||||||
|
echo "ok" |
||||||
|
;; |
||||||
|
restart) |
||||||
|
echo -n "Restarting PostgreSQL: " |
||||||
|
su - $PGUSER -c "$DAEMON restart -s -m fast" |
||||||
|
echo "ok" |
||||||
|
;; |
||||||
|
status) |
||||||
|
su - $PGUSER -c "$DAEMON status" |
||||||
|
;; |
||||||
|
*) |
||||||
|
# Print help |
||||||
|
echo "Usage: $0 {start|stop|restart|status}" 1>&2 |
||||||
|
exit 1 |
||||||
|
;; |
||||||
|
esac |
||||||
|
|
||||||
|
exit 0 |
Loading…
Reference in new issue