CGIでalarmシグナルを使ってタイムアウト処理ができない

ハマりました。
世の中には古い情報が溢れてていて、タイムアウトにはalarmを使うという解説をよく見かけますが現在では通用しないです。apache2系からCGI環境ではSIGALRMがマスクされていてSIGALRMをハンドルするようにCGIでコーディングしても実行されることはありません。

シグナルマスクを解除するには sigprocmaskが使えますが、マスクされている理由がありますので良く理解したうえで使う必要があります

参考にさせていただきました。Apache: CGIでシグナルハンドラを使用する方法 – PHACTORY

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です