私はPerlのCGI::Fastを使って動作するアプリケーションを持っています。CGI :: Fastベースのアプリケーションをkill -HUPに対応させる方法を教えてください。
は、基本的には、コードのメインループは次のとおりです。
は今、私はそれを殺す能力を追加したかったが、現在処理要求を中断することなく。そうするために、私はSIGHUPに処理を追加しました。もっとまたは線に沿って以下:
my $sighupped = 0;
$SIG{ 'HUP' } = sub { $sighupped = 1; };
while (my $cgi = CGI::Fast->new()) {
do_whatever($cgi);
exit if $sighupped;
}
それは「それはユーザの要求を処理しながら、プロセスを乱さない」ことになるとは本当に素晴らしい作品。しかし、プロセスが新しい要求を待っている場合、sighupベースの終了は、最終的に要求を取得して処理するまで実行されません。
この問題を回避する方法はありますか?要求を待っている間にHUP(または他のシグナル、変更可能)が到達すると、スクリプトを即座に終了させるために何を達成したいのですか?