Hi, Thanks for the replies. In my case, the cgi is sending a large file to the client. In case the the stop button is pressed on the browser to cancel the download, i want to do some cleanup action. It's all one- way transfer in this case, so i can't expect the client to send anything to me. I read somewhere that apache sends the SIGTERM signal to a cgi when the client disconnects. However, my cgi is not getting the signal - is there a way to have the cgi catch and handle the SIGTERM?
I tried using the signal module --- def sigtermHandler(signum, frame): # do some cleanup signal.signal(signal.SIGTERM, sigtermHandler) --- But even this doesn't work. Regards, -vishal. On Aug 25, 2:58 am, "Gabriel Genellina" <[EMAIL PROTECTED]> wrote: > En Sun, 24 Aug 2008 17:51:36 -0300, Wojtek Walczak <[EMAIL PROTECTED]> > escribió: > > > On Sun, 24 Aug 2008 17:21:52 -0300, Gabriel Genellina wrote: > >>> I am writing a CGI to serve files to the caller. I was wondering if > >>> there is any way to tell in my CGI if the client browser is still > >>> connected. If it is not, i want to execute some special code before > >>> exiting. > > >>> Is there any way to do this? Any help on this is appreciated :) > > >> I don't think so. A CGI script runs once per request, and exits. The > >> server may find that client disconnected, but that may happen after the > >> script finished. > > > I am not a web developer, but I think that the only way is to > > set a timeout on server side. You can't be sure that the client > > disconnected, but you can stop CGI script if there's no > > action on client side for too long. > > Which kind of client action? Every link clicked or form submitted generates a > different request that triggers a CGI script; the script starts, reads its > parameters, do its task, and exits. There is no "long running process" in CGI > - the whole "world" must be recreated on each request (a total waste of > resources, sure). > > If processing takes so much time, it's better to assign it a "ticket" - the > user may come back later and see if its "ticket" has been finished, or the > system may send an email telling him. > > -- > Gabriel Genellina -- http://mail.python.org/mailman/listinfo/python-list