CGIで、処理はバックで走らせつつ、ブラウザには先に返答を返してしまいたいとき、どうするかという話です。 forkを使って別プロセスを作る方法を良く見かけるのですが、ラクダ本を見る限りでは、ゾンビとかややこしそうな臭いが...。 ということで別の案を検討してみました。 forkを使って別プロセスを作る。 まずは、よく見かける方法。親プロセスは、「処理開始」をブラウザに知らせて終了します。子プロセスは、実際の処理を行います。 問題点 親プロセスが子プロセスの処理終了を待たずにexitしてしまうと、子プロセスがゾンビになってしまう。 fork以外の方法を使って別プロセスをスタートさせた場合には、Perlが、ゾンビになった子プロセスの後始末をしてくれる。しかし、じかにforkを使って別プロセスを起動した場合には、あなたは自分で後始末をしなければならない。 (ラクダ本「16.1.2 ゾンビの後始末