python, os.fork, cgi, apache, subrutine, parent, child, stdout
Jeg har et spørgsmål relateret til http://www.eksperten.dk/spm/105327Jeg kører et python script over apache CGI. Jeg vil gerne have skrevet et hurtigt output og derefter lukke forbindelsen mellem browser og server, men ikke terminere en langsom subrutine.
Følgende skriver det hurtige output og lukker forbindelsen, men dræber desværre også subrutinen.
#!/bin/env python
import cgi
import cgitb; cgitb.enable()
import os
OutputID = os.getpid()
Child = os.fork()
if Child:
## print det "hurtige" output
sys.exit(0)
sys.stdin.close()
sys.stdout.close()
sys.stderr.close()
sys.stdout = open(os.path.join(SpoolDir, OutputID), 'w')
sys.stderr = sys.stdout
time.sleep(1)
## eksekver "langsom" subrutine
Enhver hjælp - lille som stor - er MEGET velkommen :-) Maksimum point er vist ikke for meget til dette ekstremt svære spørgsmål...