469,623 Members | 1,342 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,623 developers. It's quick & easy.

How do clients(web browser) close a python CGI program that is not responding?

Hi,there. Sometimes a python CGI script tries to output great
quantities of HTML responce or in other cases, it just falls into a
dead loop. How could my client close that CGI script running on the
server? I tried to use the STOP button in the web browser button, but
it does not work.

In addition, how could I configure that if a CGI program do not finish
its task in 20sec or so, it will be automatically terminated?

Mar 28 '06 #1
3 2447
Sullivan WxPyQtKinter wrote:
Hi,there. Sometimes a python CGI script tries to output great
quantities of HTML responce or in other cases, it just falls into a
dead loop. How could my client close that CGI script running on the
server?
Generally speaking, remote users don't have control over your local
processes, and if there is some problem with that local process that
causes it to loop indefinitely, the chance that it could react
appropriately to the browser is slim anyway. So the answer is to fix
the problem with the CGI program.
In addition, how could I configure that if a CGI program do not finish
its task in 20sec or so, it will be automatically terminated?


I suppose you could run it in a background thread or process,
terminating it after the allotted time has expired, but I suspect you'd
be better off addressing whatever is causing the problem in the first
place. What sort of CGI program is this?

--
Ben Sizer

Mar 28 '06 #2
In article <11*********************@z34g2000cwc.googlegroups. com>, Sullivan WxPyQtKinter wrote:
Hi,there. Sometimes a python CGI script tries to output great
quantities of HTML responce or in other cases, it just falls into a
dead loop. How could my client close that CGI script running on the
server? I tried to use the STOP button in the web browser button, but
it does not work.
It depends on what CGI framework you're using. If the user hits
'stop', the client browser should close its connection and your web
server should close the pipe to your CGI process. I'd expect you to
get a SIGPIPE when next trying to output data.
In addition, how could I configure that if a CGI program do not finish
its task in 20sec or so, it will be automatically terminated?


Do you mean a specific CGI, or all CGIs in general? If it's in general
then you need to see if your web server can be configured to do that.
If it's a specific CGI, check out signal.alarm() or
resource.setrlimit(resource.RLIMIT_CPU, ...). Apache has a RLimitCPU
directive, but be careful with it since it may well not do what you
expect.
Mar 28 '06 #3
Actually my project is converting certain specially costomized XML
file to HTML to display and edit. Sometimes the XML file is too big, or
the client upload a very huge file for the server to process, which
exceeds the processing ability of my server.(after all, it is a small
server on my poor laptop....which use winXP and IIS......not
professional, huh?)

I configures IIS to terminate CGI program if it do not complete in 20
sec. But it does not work....Perhaps I should go to a IIS or apache
forum for answer.

Thank you.

Mar 28 '06 #4

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

1 post views Thread by Marc | last post: by
8 posts views Thread by Yatharth | last post: by
1 post views Thread by trevor oakley | last post: by
reply views Thread by Michael Bredbury | last post: by
3 posts views Thread by Jeffery Franzen | last post: by
1 post views Thread by amolbehl | last post: by
reply views Thread by gheharukoh7 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.