[pgpool-general-jp: 637] Re: 同梱の自動起動スクリプトは正しいのでしょうか?

宮崎 博士 miyazaki_1999 @ hotmail.com
2009年 11月 17日 (火) 04:52:08 JST


石井様

宮崎です。返信ありがとうございます。
最新fix等の情報も確認してみます。

> Date: Mon, 16 Nov 2009 22:29:38 +0900
> To: pgpool-general-jp @ sraoss.jp; miyazaki_1999 @ hotmail.com
> Subject: Re: [pgpool-general-jp: 635] 同梱の自動起動スクリプトは正しいのでしょうか?
> From: ishii @ sraoss.co.jp
> 
> 石井です。
> 
> > CentOS 5.3に yum install で バージョン2.2.4
> >  pgpool-II-2.2.4-1.rhel5 ・・・ pgpool-II version 2.2.4 (urukiboshi)
> > をインストールして利用させて頂いていますが、
> > この際インストールされる自動起動スクリプト"/etc/init.d/pgpool"のままでは
> > ログが出力されないということは無いでしょうか?
> 
> はい、その通りです。
> 
> > "/etc/sysconfig/pgpool"に
> >  OPTS="-n"
> > を設定し、デーモンモードで起動しないようにして確認したのですが、
> > 自動起動スクリプト"/etc/init.d/pgpool"に定義されているログファイル
> >  PGPOOLLOG=/var/log/pgpool.log
> > には全くログが出力されません。
> > 
> > そこで、自動起動スクリプト"/etc/init.d/pgpool"の88行目の内容を確認したところ、
> >        $PGPOOLDAEMON -f $PGPOOLCONF $OPTS &>> "$PGPOOLLOG" 2>&1 < /dev/null
> > と書かれており、"&"でバックグラウンド起動した後から ">>" で
> > ログファイルにリダイレクトしています。これが原因なのだろうと考え、
> > 以下のように修正して起動したところログファイルに出力されるようになりました。
> >  #     $PGPOOLDAEMON -f $PGPOOLCONF $OPTS &>> "$PGPOOLLOG" 2>&1 < /dev/null
> >        $PGPOOLDAEMON -f $PGPOOLCONF $OPTS>> "$PGPOOLLOG" 2>&1 < /dev/null &
> > 
> > この修正が正しいのかどうか確信が持てず、もしかしたら、
> > インストールされる自動起動スクリプト"/etc/init.d/pgpool"は正しく、
> > 私のpgpoolの設定方法が誤っているのが原因なのかもしれないと考え、
> > 皆様はどのように設定されていらっしゃるのか、ご教授願いたく宜しくお願い致します。
> 
> 基本的に上記であっていると思います。
> 
> 最新fixに関しては、CVS HEADからソースをダウンロードして確認いただくの
> が良いと思いますが、とりあえずpgpool.initはこんな感じになってます。
> 
> #!/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 <devrim @ CommandPrompt.com>
> # - Initial version of Red Hat / Fedora init script
> #
> # v2.2 Devrim GUNDUZ <devrim @ CommandPrompt.com>
> # - New and improved version which has some fixes.
> #
> # v2.2.5 Devrim GUNDUZ <devrim @ CommandPrompt.com>
> # - 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/bin
> PGPOOLDAEMON=$PGPOOLENGINE/pgpool
> PGPOOLCONF=/etc/pgpool-II/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/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
> 
 		 	   		  
_________________________________________________________________
メール一括チェック!他の無料メールもプロバイダーメールも。
http://welovewindowslive.spaces.live.com/blog/cns!6029A5A1C44FA6D3!557.entry
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: http://www.sraoss.jp/pipermail/pgpool-general-jp/attachments/20091117/9159dfb8/attachment-0001.html 


pgpool-general-jp メーリングリストの案内