mirror of https://github.com/postgres/postgres
parent
169051afc9
commit
5b912b089c
@ -0,0 +1,28 @@ |
|||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Makefile.inc--
|
||||||
|
# Makefile for bin/pg_ctl
|
||||||
|
#
|
||||||
|
# Copyright (c) 1999, PostgreSQL Global Development Group
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# IDENTIFICATION
|
||||||
|
# $Header: /cvsroot/pgsql/src/bin/pg_ctl/Makefile,v 1.1 1999/12/06 07:23:41 ishii Exp $
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
|
||||||
|
SRCDIR= ../..
|
||||||
|
include ../../Makefile.global |
||||||
|
|
||||||
|
all: pg_ctl |
||||||
|
|
||||||
|
pg_ctl: pg_ctl.sh |
||||||
|
sed -e 's@__BINDIR__@$(BINDIR)@' pg_ctl.sh > pg_ctl
|
||||||
|
|
||||||
|
install: pg_ctl |
||||||
|
$(INSTALL) $(INSTL_EXE_OPTS) $< $(BINDIR)/$<
|
||||||
|
|
||||||
|
clean: |
||||||
|
rm -f pg_ctl
|
||||||
|
|
||||||
|
dep depend: |
||||||
@ -0,0 +1,191 @@ |
|||||||
|
#! /bin/sh |
||||||
|
#------------------------------------------------------------------------- |
||||||
|
# |
||||||
|
# pg_ctl.sh-- |
||||||
|
# Start/Stop/Restart/Report status of postmaster |
||||||
|
# |
||||||
|
# Copyright (c) 1999, PostgreSQL Global Development Group |
||||||
|
# |
||||||
|
# |
||||||
|
# IDENTIFICATION |
||||||
|
# $Header: /cvsroot/pgsql/src/bin/pg_ctl/Attic/pg_ctl.sh,v 1.1 1999/12/06 07:23:41 ishii Exp $ |
||||||
|
# |
||||||
|
#------------------------------------------------------------------------- |
||||||
|
CMDNAME=`basename $0` |
||||||
|
|
||||||
|
# set default path to postmaster |
||||||
|
po_path=__BINDIR__/postmaster |
||||||
|
|
||||||
|
# set default shutdown signal |
||||||
|
sig="-TERM" |
||||||
|
|
||||||
|
while [ "$#" -gt 0 ] |
||||||
|
do |
||||||
|
case $1 in |
||||||
|
-h|--help) |
||||||
|
usage=1 |
||||||
|
break |
||||||
|
;; |
||||||
|
-D) |
||||||
|
shift |
||||||
|
PGDATA="$1" |
||||||
|
;; |
||||||
|
-p) |
||||||
|
shift |
||||||
|
po_path="$1" |
||||||
|
;; |
||||||
|
-m) |
||||||
|
shift |
||||||
|
case $1 in |
||||||
|
f|fast) |
||||||
|
sig="-INT" |
||||||
|
;; |
||||||
|
i|immediate) |
||||||
|
sig="-QUIT" |
||||||
|
;; |
||||||
|
*) |
||||||
|
echo "$CMDNAME: Wrong shutdown mode $sigopt" |
||||||
|
usage=1 |
||||||
|
;; |
||||||
|
esac |
||||||
|
;; |
||||||
|
-w) |
||||||
|
wait=1 |
||||||
|
;; |
||||||
|
-o) |
||||||
|
shift |
||||||
|
POSTOPTS="$1" |
||||||
|
;; |
||||||
|
start) |
||||||
|
op="start" |
||||||
|
;; |
||||||
|
stop) |
||||||
|
op="stop" |
||||||
|
;; |
||||||
|
restart) |
||||||
|
op="restart" |
||||||
|
;; |
||||||
|
status) |
||||||
|
op="status" |
||||||
|
;; |
||||||
|
*) |
||||||
|
usage=1 |
||||||
|
break |
||||||
|
;; |
||||||
|
esac |
||||||
|
shift |
||||||
|
done |
||||||
|
|
||||||
|
if [ "$usage" = 1 -o "$op" = "" ];then |
||||||
|
echo "Usage: $CMDNAME [-w][-D database_dir][-p path_to_postmaster][-o \"postmaster_opts\"] start" |
||||||
|
echo " $CMDNAME [-w][-D database_dir][-m s[mart]|f[ast]|i[mmediate]] stop" |
||||||
|
echo " $CMDNAME [-w][-D database_dir][-m s[mart]|f[ast]|i[mmediate]][-o \"postmaster_opts\"] restart" |
||||||
|
echo " $CMDNAME [-D database_dir] status" |
||||||
|
exit 1 |
||||||
|
fi |
||||||
|
|
||||||
|
if [ -z "$PGDATA" ];then |
||||||
|
echo "$CMDNAME: No database directory or environment variable \$PGDATA is specified" |
||||||
|
exit 1 |
||||||
|
fi |
||||||
|
|
||||||
|
DEFPOSTOPTS=$PGDATA/postmaster.opts.default |
||||||
|
POSTOPTSFILE=$PGDATA/postmaster.opts |
||||||
|
PIDFILE=$PGDATA/postmaster.pid |
||||||
|
|
||||||
|
if [ $op = "status" ];then |
||||||
|
if [ -f $PIDFILE ];then |
||||||
|
echo "$CMDNAME: postmaster is running (pid: `cat $PIDFILE`)" |
||||||
|
echo "options are:" |
||||||
|
echo "`cat $POSTOPTSFILE`" |
||||||
|
exit 0 |
||||||
|
else |
||||||
|
echo "$CMDNAME: postmaster is not running" |
||||||
|
exit 1 |
||||||
|
fi |
||||||
|
fi |
||||||
|
|
||||||
|
if [ $op = "stop" -o $op = "restart" ];then |
||||||
|
if [ -f $PIDFILE ];then |
||||||
|
kill $sig `cat $PIDFILE` |
||||||
|
|
||||||
|
# wait for postmaster shutting down |
||||||
|
if [ "$wait" = 1 -o $op = "restart" ];then |
||||||
|
cnt=0 |
||||||
|
echo -n "Waiting for postmaster shutting down.." |
||||||
|
|
||||||
|
while : |
||||||
|
do |
||||||
|
if [ -f $PIDFILE ];then |
||||||
|
echo -n "." |
||||||
|
cnt=`expr $cnt + 1` |
||||||
|
if [ $cnt -gt 60 ];then |
||||||
|
echo "$CMDNAME: postmaster does not shut down" |
||||||
|
exit 1 |
||||||
|
fi |
||||||
|
else |
||||||
|
break |
||||||
|
fi |
||||||
|
sleep 1 |
||||||
|
done |
||||||
|
echo "done." |
||||||
|
fi |
||||||
|
|
||||||
|
else |
||||||
|
echo "$CMDNAME: Can't find $PIDFILE." |
||||||
|
echo "Is postmaster running?" |
||||||
|
if [ $op = "restart" ];then |
||||||
|
echo "Anyway, I'm going to start up postmaster..." |
||||||
|
else |
||||||
|
exit 1 |
||||||
|
fi |
||||||
|
fi |
||||||
|
fi |
||||||
|
|
||||||
|
if [ $op = "start" -o $op = "restart" ];then |
||||||
|
if [ -f $PIDFILE ];then |
||||||
|
echo "$CMDNAME: It seems another postmaster is running. Try to start postmaster anyway." |
||||||
|
pid=`cat $PIDFILE` |
||||||
|
fi |
||||||
|
|
||||||
|
if [ -z "$POSTOPTS" ];then |
||||||
|
if [ -f $DEFPOSTOPTS ];then |
||||||
|
eval `cat $DEFPOSTOPTS` & |
||||||
|
else |
||||||
|
echo "$CMDNAME: Can't find $DEFPOSTOPTS" |
||||||
|
exit 1 |
||||||
|
fi |
||||||
|
else |
||||||
|
$po_path $POSTOPTS & |
||||||
|
fi |
||||||
|
|
||||||
|
if [ -f $PIDFILE ];then |
||||||
|
if [ "`cat $PIDFILE`" = "$pid" ];then |
||||||
|
echo "$CMDNAME: Cannot start postmaster. Is another postmaster is running?" |
||||||
|
exit 1 |
||||||
|
fi |
||||||
|
fi |
||||||
|
|
||||||
|
# wait for postmaster starting up |
||||||
|
if [ "$wait" = 1 ];then |
||||||
|
cnt=0 |
||||||
|
echo -n "Waiting for postmaster starting up.." |
||||||
|
while : |
||||||
|
do |
||||||
|
if [ ! -f $PIDFILE ];then |
||||||
|
echo -n "." |
||||||
|
cnt=`expr $cnt + 1` |
||||||
|
if [ $cnt -gt 60 ];then |
||||||
|
echo "$CMDNAME: postmaster does not start up" |
||||||
|
exit 1 |
||||||
|
fi |
||||||
|
sleep 1 |
||||||
|
else |
||||||
|
break |
||||||
|
fi |
||||||
|
done |
||||||
|
echo "done." |
||||||
|
fi |
||||||
|
fi |
||||||
|
|
||||||
|
exit 0 |
||||||
Loading…
Reference in new issue