【发布时间】:2019-05-22 16:14:56
【问题描述】:
我正在尝试从 CGI python 脚本在后台运行另一个 Python 脚本,并希望该脚本在后台运行该进程而无需等待其他脚本完成。不知何故,当我从 Linux shell 运行相同的程序时,我可以在后台运行其他 python 脚本。但是当我尝试通过 CGI 做同样的事情时,前端会一直加载直到另一个脚本完成,而不仅仅是让它在后台运行。
我已经尝试在 Linux Shell 上运行相同的程序并且它可以工作。当我切换到 CGI 时,脚本等待其他进程完成。
python1.py:
command = [sys.executable,'python2.py', str(senddata)]
proc=subprocess.Popen(command,shell=False,stdin=None,stdout=None,stderr=None,close_fds=True)
print("Content-type: text/html\r\n\r\n")
print("The script is running in background! Expect an email in 10 minutes.")
python2.py: 此脚本需要 2-5 分钟才能执行,然后向群组发送电子邮件。
预期的输出是有这个消息:
脚本正在后台运行!预计 10 分钟后会收到一封电子邮件。
并在后台运行 python2.py 而无需等待它完成。
【问题讨论】: