Как я могу заставить Apache уничтожить созданные им CGI после того, как клиент (браузер) закрыл соединение?
У меня есть пара CGI, которые выполняют длительные операции и отправляют вывод каждые 15 секунд. Как только браузер закрывает соединение, CGI (и его потомки) должны быть должным образом уничтожены, вместо того, чтобы оставаться в моей системе и занимать ценные слоты Apache.
Желательно, чтобы Apache убивал их. Если нет, я хотел бы знать, есть ли у CGI способ определить, пропало ли соединение с браузером.
Изменить: по-видимому, у CGI будет закрыт STDOUT. После записи они получат сигнал SIGPIPE и могут действовать соответствующим образом (обычно они игнорируют этот сигнал). В Perl вы могли:
print "fresh output\n" or die "apparently my audience has left the building";
Таким образом, остается вопрос: сможет ли Apache обнаружить сломанный канал и очистить его от мусора?
Работает на Debian с Apache 2.2.20 и обычным механизмом suexec.
Спасибо!