2008年12月25日

CGIのバックグラウンド動作

以前にもはまった記憶があるんだが、バックグラウンド動作させるCGIつくったんで、メモ

ブラウザがCGIに要求してきたら、
CGIは即ブラウザと切断>切断後に処理
ってことをやったんだが、
それ調べると、
-fork使って子プロセスを作る。
-close(STDOUT);する。
-バッファリングを無効にする。
ってなことをやれって記事ばっかでてくるわけなんだが、

-ブラウザと切断してもプロセスは終了させられないのでforkは不要。(サーバーによるのかもしれないがApacheは平気)
-close(STDOUT);してもブラウザと切断しない。
-バッファリングを無効にしてもブラウザと切断しない。
です。

どうすりゃいいかっていうと、
-close(STDOUT);
-close(STDERR);
の2個でブラウザと切断します。
STDOUTだけじゃなくてSTDERRも閉じろってことですね。
切断したら出力されると思われるのでバッファリングの無効もいらないとおもいます。
forkしなくてもプロセスは終了しないので必要ない。



posted by ST at 22:04| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.seesaa.jp/tb/111708068

この記事へのトラックバック