[pgpool-general-jp: 480] Re: pgpoolAdmin で pgpool 起動→ apache 上がらず

Kikuchi Yukihiro y-kik @ nifty.com
2008年 8月 5日 (火) 20:02:52 JST


菊池です。

石田様、レスポンスが遅くなり申し訳ありません。

ご提示頂いたコードは、httpdをrestartする前後でpgpoolのstop,startをする事と
同じと理解してよろしいでしょうか。
そうであれば、httpdのrestartの時間はDBへのアクセスをさせないよう
徹底するしかなさそうですね。


----- Original Message -----
>Date: Tue, 29 Jul 2008 16:10:13 +0900
>From: "ISHIDA Akio" <iakio @ mono-space.net>
>To: pgpool-general-jp @ sraoss.jp
>Subject: [pgpool-general-jp: 472] Re:
>	pgpoolAdmin で pgpool 起動→ apache 上がらず
>
>
>石田です。
>
>とりあえずdaemonizeする時に全部クローズしてしまうのが
>良いのではないでしょうか(dup2じゃなくてdupの方がいいかも
>しれませんが)。
>
>-n オプションを付けた場合はファイルディスクリプタは
>引き継がれてしまいますが、pgpoolがhttpdのプロセスグループ
>になってしまうので、httpdを停止するとpgpoolも止まります。
>これの善し悪しはともかく、結果的にport80を占有することは無いです。
>----
>RCS file: /cvsroot/pgpool/pgpool-II/main.c,v
>retrieving revision 1.37
>diff -u -r1.37 main.c
>--- main.c      22 May 2008 14:36:38 -0000      1.37
>+++ main.c      29 Jul 2008 06:36:41 -0000
>@@ -621,6 +621,7 @@
> static void daemonize(void)
> {
>        int                     i;
>+       int                     fdlimit;
>        pid_t           pid;
>
>        pid = fork();
>@@ -652,7 +653,10 @@
>        dup2(i, 0);
>        dup2(i, 1);
>        dup2(i, 2);
>-       close(i);
>+
>+       fdlimit = sysconf(_SC_OPEN_MAX);
>+       for (i = 3; i < fdlimit; i++)
>+               close(i);
>
>        write_pid_file();
> }
>----
>
>2008/7/29 ISHIDA Akio <iakio @ mono-space.net>:
>> こんにちは。石田@苫小牧と申します。
>>
>> こちらでも再現したので、報告します。
>> Apache/2.0.52
>> PHP 5.1.6
>> CentOS 4.6
>>
>> こんなスクリプトで再現します。
>> <?php
>> exec("/usr/local/bin/pgpool >/dev/null &", $output, $ret);
>> ?>
>>
>> これをDocumentRootにおいて、httpからアクセスします。
>>
>> ----
>> [root @ localhost html]# service httpd start
>> httpd を起動中:                                            [  OK  ]
>> [root @ localhost html]# wget http://127.0.0.1/pgpool.php
>> --19:11:28--  http://127.0.0.1/pgpool.php
>>           => `pgpool.php.1'
>> 127.0.0.1:80 に接続しています... 接続しました。
>> HTTP による接続要求を送信しました、応答を待っています... 200 OK
>> 長さ: 0 [text/html]
>>
>>    [ <=>                                 ] 0             --.--K/s
>>
>> 19:11:28 (0.00 B/s) - `pgpool.php.1' を保存しました [0/0]
>>
>> [root @ localhost html]# service httpd restart
>> httpd を停止中:                                            [  OK  ]
>> httpd を起動中: (98)Address already in use: make_sock: could not bind to
>> address [::]:80
>> no listening sockets available, shutting down
>> Unable to open logs
>>                                                           [失敗]
>> ----
>> 想像ですが、phpがpopenした時にが引き継がれているのでは
>> ないでしょうか。
>
>
>
>-- 
>ISHIDA Akio <iakio @ mono-space.net/ishida @ cycleof5th.com>
>_______________________________________________
>pgpool-general-jp mailing list
>pgpool-general-jp @ sraoss.jp
>http://www.sraoss.jp/mailman/listinfo/pgpool-general-jp



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