[EMAIL PROTECTED] wrote: >Hello, >I am using python and CGI to initiate a long running simulation (up to >5h long) on a remote machine. The main idea is that I use a form, enter >the parameters and a CGI scripts start the simulation using these >parameters. The structure of the script is: > >1. Read paremeters >2. Display some information >3. Start the simulation > >For step 3 I use either os.system or os.popen(2). The problem is that >the web server does not send the information of step 2 back to the >browser, unless step 3 is completed. The browser simply waits for a >response, without displaying anything. How can I just read the params, >display the info I want, start the simulation and then terminate either >the script or at least the connection to the browser without having to >wait for the simulation to finish?
You need to close stdout, which closes the socket and allows the browser to finish. This is what I use: # We flush stdout, fork, then close stdout. This closes the HTTP socket, # allowing the browser to continue while we munge with sendmail. sys.stdout.flush() if os.fork(): return fw = open('/dev/null','w') os.dup2(fw.fileno(),1) os.dup2(fw.fileno(),2) -- - Tim Roberts, [EMAIL PROTECTED] Providenza & Boekelheide, Inc. -- http://mail.python.org/mailman/listinfo/python-list