[PHP-users 25034] Re: cli をデーモンとして使用する際の注意
komura
komura @ ma9.seikyou.ne.jp
2005年 3月 23日 (水) 01:57:34 JST
komura です。
On Tue, 22 Mar 2005 15:19:45 +0900
Seiji Masugata <s.masugata @ digicom.dnp.co.jp> wrote:
> > > nanoweb って PHP で書かれたウェブサーバーが daemon 化していたと
> > > 思います.結構規模のでかいあぷりみたいですが,参考にしてみてはい
> > > かがでしょうか?
> > >
> > うちでもデーモンで(RSS配信していない)ニュースサイトの要約を
> > 作成したりしていますが、問題なく動いて・・・って、同様の現象が
> > 発生しています(T T)
>
> 厳密に管理する術があるなら教えてホシィです。
この問題ですが、デーモンにするのであれば、pcntl_fork() を使用すること
で回避できないでしょうか?
例えば、以下のようなコードですが、var_dump( $fp ); で表示される番号は
実行中には変わりません。
また、memory_get_usage() でメモリ使用量を表示させてみましたが、
メモリ使用量も変化しないことを確認しました。
<?php
while ( TRUE ) {
// echo memory_get_usage() . "\n";
$pid = pcntl_fork();
if ( $pid === -1 ) {
exit;
}
else if ( $pid ) {
// 親プロセス
pcntl_waitpid( -1, $status, WUNTRACED );
}
else {
// 子プロセス
$fp = fopen( __FILE__, 'r' );
var_dump( $fp );
fclose( $fp );
exit;
}
}
?>
--
結果
resource(4) of type (stream)
resource(4) of type (stream)
resource(4) of type (stream)
...
実際にデーモンとして運用したことはありませんので、どこまで使用に
耐えられるかは分かりません。
実用できそうでしたら教えていただけますと幸いです。
--
komura <komura @ ma9.seikyou.ne.jp>
PHP-users メーリングリストの案内