Python CGI - Accepting Input, Invoking Another Process, Ending CGI

L

LarsenMTL

Python Users:

Based on previous suggestions from this group, I'm attempting to write
a python CGI that takes input from an HTML form, invokes a second
python script using this input, tells the user that their process has
started, ends the cgi output and later emails the results of the
invoked script.

My problem is that no mater how I invoke the 2nd script (spawnlp with
P_NOWAIT, system with &, etc..) the CGI caller continues to run until
it finishes. If you press the stop button or close the browser
certain portions of the 2nd script finish but not all of it. In
paticular the 2nd script uses teTex (invoked by os.system) to process
some tex files, this always errors out if the browser is closed or
stopped.

Regardless of all that, what is the proper way to have a python CGI
batch another python script?

Thanks,

Mark
 
D

Diez B. Roggisch

Based on previous suggestions from this group, I'm attempting to write
a python CGI that takes input from an HTML form, invokes a second
python script using this input, tells the user that their process has
started, ends the cgi output and later emails the results of the
invoked script.

My problem is that no mater how I invoke the 2nd script (spawnlp with
P_NOWAIT, system with &, etc..) the CGI caller continues to run until
it finishes. If you press the stop button or close the browser
certain portions of the 2nd script finish but not all of it. In
paticular the 2nd script uses teTex (invoked by os.system) to process
some tex files, this always errors out if the browser is closed or
stopped.

Did you try to daemonize your script? That will decouple it from the running
process, so maybe that helps. In the aspn cookbook there is a good recipe
for daemonizing.
 
E

Eric Walstad

LarsenMTL said:
Python Users:

Based on previous suggestions from this group, I'm attempting to write
a python CGI that takes input from an HTML form, invokes a second
python script using this input, tells the user that their process has
started, ends the cgi output and later emails the results of the
invoked script.

My problem is that no mater how I invoke the 2nd script (spawnlp with
P_NOWAIT, system with &, etc..) the CGI caller continues to run until
it finishes. If you press the stop button or close the browser
certain portions of the 2nd script finish but not all of it. In
paticular the 2nd script uses teTex (invoked by os.system) to process
some tex files, this always errors out if the browser is closed or
stopped.

Regardless of all that, what is the proper way to have a python CGI
batch another python script?

Thanks,

Mark

Hi Mark,

I had to do something like this in mod_python. I ended up using a
mod_python function to detach the process from the request. I don't know
how mod_python handles it, but it worked for me may be a lead for you to
follow (looking at the mod_python source, that is):
<http://www.modpython.org/pipermail/mod_python/2004-June/015719.html>

Best,

Eric.
 
L

LarsenMTL

Diez B. Roggisch said:
Did you try to daemonize your script? That will decouple it from the running
process, so maybe that helps. In the aspn cookbook there is a good recipe
for daemonizing.

Thanks. I think I got it. Looking at that recipe hinted me at the
idea that I need to close or redirect stdin, stdout and stderr. Some
searches around here confirmed that.

Cheers.
 
E

Eric Walstad

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Thanks. I think I got it. Looking at that recipe hinted me at the
idea that I need to close or redirect stdin, stdout and stderr. Some
searches around here confirmed that.

Cheers.
Hi Mark,

Would you mind posting a snippet of how you solved the problem? I'd
appreciate seeing what you did.

Thanks,

Eric.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFBim4ThlnH2nphKS4RArFhAKDgEBBQvIZjdn39kmcCg2k00opJWgCfTtP0
E2ByNLFDa4eavr25H5MWZ80=
=UU+k
-----END PGP SIGNATURE-----
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,537
Members
45,022
Latest member
MaybelleMa

Latest Threads

Top