[PHP-users 25015] Re: cli をデーモンとして使用する際の注意
satoshi @ try-square.co.jp
satoshi @ try-square.co.jp
2005年 3月 22日 (火) 14:46:13 JST
藤本です。
Ryuzo KOSAKI <kosaki @ fip.fujitsu.com>さん:
> デーモンプロセスにPHPを使用してるなんてひとは、いないのかなあ。
言語としての魅力から、そう考える人は少なくないでしょうね。
私は、以下のいずれの方法も使ったことがあります。
1.C言語でデーモンプロセスを書いて、その中からシェル経由でPHPを
呼び出す
例:system("/usr/local/bin/php /home/hoge/hoge.php");
2.PHPスクリプトをcron登録する
例:(crontabエントリ)
* * * * * /home/hoge/hoge.php > /dev/null 2>&1
※ただしhoge.phpの冒頭で#!/usr/local/bin/phpとしてスクリプト化
※1分に1回までしか呼べません
3.localhostにHTTPリクエストを投げてPHPを呼び出すperlスクリプトを
書いて、そのperlスクリプトをデーモン起動する
どれもメモリリークは無く、安定して動いてますよ。
意外とお勧めは3です。無駄に遅いですが、管理しやすい安心動作です。
ただし、いずれの方法も、PHPスクリプトの処理領域は呼び出しごとに
失われてしまうので、必要ならば処理状況を完全にファイルに保存してやる
必要があります。
または、GET変数とプロセス戻り値を駆使すれば、だいたいどんな動きでも
できそうですが。
ちなみに、PHPスクリプト内で無限ループさせるのは、いかにもコワイので、
やったことありません。
----
藤本 悟司
株式会社トライスクエア
〒104-0045 東京都中央区築地3-5-13北村ビル5F
TEL: 03-5148-3345 / FAX: 03-5148-3346
Mobile: 070-6668-4644
E-Mail: satoshi @ try-square.co.jp
WEB: http://www.try-square.co.jp/
Key fingerprint = 95F2 6B3D 0B8C 374A 5E67 CA02 F28F 703A C1A9 8346
PHP-users メーリングリストの案内