[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 メーリングリストの案内