我有一个向这个 cgi 脚本提交数据的页面,然后这个脚本调用另一个可执行文件。问题是这个可执行文件需要很长时间才能运行,因此,它会导致 cgi 脚本暂停直到完成。我正在尝试找到一种在后台运行它的方法。我在linux机器上用python编码。我遇到的问题是当脚本结束时(父进程被杀死),子进程也被 init 终止(根据 linux 规范)。我用谷歌搜索了一下,我遇到了这个线程: Calling an external command in Python
然后我在我的代码中尝试了以下内容:
print <html code>
pid = subprocess.Popen([sys.executable, '/path/to/executable.py '+arg1],
stdout=subprocess.PIPE, stderr=subprocess.PIPE,
stdin=subprocess.PIPE)
...
retval = pid.wait()
#For debugging purposes:
print str(retval) + "<br/>"
print </html code>
这给了我一个 '2' 的 retval,我确定这意味着有问题(因为我没有看到正确的输出)我尝试了一些其他方法,但它要么运行脚本并需要一段时间才能加载(意味着它是在前台运行),或者它只是无法一起运行脚本。
想法?谢谢你。哦,顺便说一句,我使用的是 python 2.6