我有一个 python 脚本af_audit_run.py,它request_audit.py通过调用另一个 python 脚本subprocess。
第二个脚本request_audit.py在后台调用另一个子进程并返回请求 ID。
问题是第一个脚本af_audit_run.py(应该在第二个脚本返回请求 id 后立即退出)正在等待整个后台进程完成。有没有什么方法可以强制第一个脚本在请求 id 返回后立即退出?
af_audit_run.py-- 使用以下方法等待结果communicate:
p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
result, error = p.communicate()
print(result.decode('utf-8'))
print(error.decode('utf-8'))
Run Code Online (Sandbox Code Playgroud)
request_audit.py-- 不等待,只需分离子进程(第三个 python 脚本)并返回请求 id:
subprocess.Popen(cmd, shell=True, stdout=None, stderr=None, close_fds=True)
print(request_id)
Run Code Online (Sandbox Code Playgroud)
环境:Linux