Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2736431
  • 博文数量: 423
  • 博客积分: 7770
  • 博客等级: 少将
  • 技术积分: 4766
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-09 11:58
个人简介

Oracle/DB2/Postgresql/Mysql/Hadoop/Greenplum/Postgres-xl/Mongodb

文章分类

全部博文(423)

文章存档

2019年(3)

2018年(6)

2017年(27)

2016年(23)

2015年(30)

2014年(16)

2013年(31)

2012年(73)

2011年(45)

2010年(14)

2009年(30)

2008年(30)

2007年(63)

2006年(32)

分类: Mysql/postgreSQL

2013-01-24 12:52:35

注意本pgpool按默认安装在/usr/local目录,如安排在其它目录请修改具体变量

[root@localhost redhat]# more /etc/init.d/pgpool 

#!/bin/sh
# pgpool    This is the init script for starting up pgpool-II
#
# chkconfig: - 64 36
# description: Starts and stops the pgpool daemon
# processname: pgpool
# pidfile:      /var/run/pgpool.pid
#
# v1.0.0 Devrim GUNDUZ
# - Initial version of Red Hat / Fedora init script
#
# v2.2 Devrim GUNDUZ
# - New and improved version which has some fixes.
#
# v2.2.5 Devrim GUNDUZ
# - Fix logging.


if [ -r /etc/sysconfig/pgpool ]; then
    . /etc/sysconfig/pgpool
fi


# Source function library.
INITD=/etc/rc.d/init.d
. $INITD/functions


# Get function listing for cross-distribution logic.
TYPESET=`typeset -f|grep "declare"`


# Get config.
. /etc/sysconfig/network


# Check that networking is up.
# We need it for pgpool
[ "${NETWORKING}" = "no" ] && exit 0


# Find the name of the script
NAME=`basename $0`
if [ ${NAME:0:1} = "S" -o ${NAME:0:1} = "K" ]
then
        NAME=${NAME:3}
fi


# For SELinux we need to use 'runuser' not 'su'
if [ -x /sbin/runuser ]
then
    SU=runuser
else
    SU=su
fi


# Set defaults for configuration variables
PGPOOLENGINE=/usr/local/bin
PGPOOLDAEMON=$PGPOOLENGINE/pgpool
PGPOOLCONF=/usr/local/etc/pgpool.conf
PGPOOLPIDDIR=/var/run/pgpool
PGPOOLLOG=/var/log/pgpool.log


test -x $PGPOOLDAEMON || exit 5


# Check whether the config file exists or not
if [ ! -r $PGPOOLCONF ]
then
        echo "$PGPOOLCONF not found"
        RETVAL=1
        failure
        exit
fi


# Create the log file if it does not exist
if [ ! -x $PGPOOLLOG ]
then
        touch $PGPOOLLOG
        chown postgres: $PGPOOLLOG
fi


if [ ! -d $PGPOOLPIDDIR ]
then
        mkdir $PGPOOLPIDDIR
        chown postgres: $PGPOOLPIDDIR
fi


script_result=0


start(){
        pid=`pidof -s "$PGPOOLDAEMON"`
        if [ $pid ]
        then
                echo "pgpool is already running with pid $pid"
                failure "$PGPOQL_START"
                echo
                script_result=1
                exit 1
        fi


        PGPOOL_START=$"Starting ${NAME} service: "


        echo -n "$PGPOOL_START"


        $SU -l postgres -c "$PGPOOLDAEMON -f $PGPOOLCONF $OPTS & " >> "$PGPOOLLOG" 2>&1 < /dev/null
        sleep 2


        pid=`pidof -s "$PGPOOLDAEMON"`
        if [ $pid ] 
        then
                success "$PGPOOL_START"
                touch /var/lock/subsys/${NAME}
                echo
        else
                failure "$PGPOQL_START"
                echo
                script_result=1
        fi
}


stop(){
        echo -n $"Stopping ${NAME} service: "
        if [ $UID -ne 0 ]; then
                RETVAL=1
                failure
        else
                killproc /usr/local/bin/pgpool
#               $PGPOOLDAEMON stop & >> "$PGPOOLLOG" 2>&1 < /dev/null
                RETVAL=$?
                [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/${NAME}
        fi;
        echo
        return $RETVAL
}


switch() {
        echo -n $"Sending switchover request to聽$NAME "
        $PGPOOLDAEMON -f $PGPOOLCONF switch >> "$PGPOOLLOG" 2>&1 < /dev/null
        RETVAL=$?
        echo
        if [ $RETVAL -eq 0 ] 
        then
                echo_success
        else
                echo_failure
        fi
        echo
}


restart(){
    stop
    start
}


reload(){
        echo -n $"Reloading ${NAME}: "


        if [ -n "`pidfileofproc $PGPOOLDAEMON`" ] ; then
                killproc $PGPOOLDAEMON -HUP
        else
                failure $"Reloading ${NAME}"
        fi
        RETVAL=$?
        echo
}


condrestart(){
        [ -e /var/lock/subsys/${NAME} ] && restart
}


condstop(){
        [ -e /var/lock/subsys/${NAME} ] && stop
}


# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  switch)
        switch
        ;;
  status)
        status pgpool
        script_result=$?
        ;;
  restart)
        restart
        ;;
  reload|force-reload)
        reload
        ;;
  condrestart)
        condrestart
        ;;
  condstop)
        condstop
        ;;
  *)
        echo $"Usage: $0 {start|stop|switch|status|restart|condrestart|condstop|reload|force-reload}"
        exit 1
esac


exit $script_result
[root@localhost redhat]# 
阅读(2407) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~