[PHP-users 17903]Re: 二重起動抑止
Youichi Iwakiri
yiwakiri @ st.rim.or.jp
2003年 9月 16日 (火) 18:27:32 JST
いわきりです
Mitsuaki Ohnishi wrote in <20030916174550.1C73.MONISHI @ m21.or.jp> :
>cronでPHPを動作させますが、二重起動することがありますね。
>cronの間隔より、処理時間のほうが長くなりそうなとき。
>それが困るので
> system("ps auxww | grep ******.php");
>を確認して、あればキャンセルしたいけど、このコマンド自身もヒットしてしま
>います。
>
>どんなフィルターをかければよいでしょうか。
>または別の二重起動防止の方法があるでしょうか。
ごく普通にlockfileを使用します。
1. lockfileは有るか あれば2へ無ければ3へ
2. lockfile内のプロセス番号をもつプロセスは動作しているか。posix_kill()
YESなら終了。NOなら、lockfileを削除して3へ
3. posix_getpid()で自プロセスのプロセス番号を取得
4. lockfileを作成し、プロセス番号を出力
5. 目的の処理
6. 後始末(lockfileの削除)
--
Youichi Iwakiri
PHP-users メーリングリストの案内