Como posso fazer com que o Apache mate o CGI que ele gerou depois que o cliente (navegador) fechou a conexão?
Eu tenho algumas CGIs que executam operações de longa duração e enviam a saída a cada 15 segundos. Assim que o navegador fecha a conexão, o CGI (e seus descendentes) devem ser mortos adequadamente, em vez de permanecerem em volta do meu sistema e mantendo ocupados os valiosos espaços do Apache.
De preferência, o Apache deve matá-los. Se não, eu gostaria de saber se existe uma maneira de o CGI detectar se a conexão com o navegador desapareceu.
Edit: aparentemente, os CGI terão seu STDOUT fechado. Ao escrever, eles receberão um sinal SIGPIPE e poderão agir de acordo (normalmente eles ignoram esse sinal). Em Perl, você poderia fazer:
print "fresh output\n" or die "apparently my audience has left the building";
Então a questão permanece: o Apache poderia detectar o cano quebrado e limpar o lixo?
Rodando em Debian com Apache 2.2.20, e mecanismo suexec normal.
Obrigado!
Tags debian hosting cgi apache-2.2