1

我正在尝试处理长时间运行的 CGI Web 应用程序因过早关闭选项卡而被终止的情况。然后一个信号trap将捕获该事件并清理

我写了一个简化的 CGI 来演示这个问题。

#!/bin/bash
exec 2>&1
cat <<END
Cache-Control: no-cache
Content-Type: text/html

END

trap "rm -f foo$$.log; exit" 1 2 3 6 9 14 15

while true
do
        date | tee -a foo$$.log
        echo '<br>'
        sleep 5
done

如果我对 CGI 进行 strace,我可以看到它在关闭选项卡时收到 SIGKILL,但trap在此实例中并未执行 IIUC 以清理日志文件。

这就像 Apache 中的 CGI 处理程序正在发出一个kill -9无法捕获的。各位好心人可以建议任何解决方法或更好的方法吗?

4

0 回答 0