Почему Popen.communicate возвращает сатус другого subprocess.Popen?
У меня есть коды, которые запускают Django сервер и React сервер одновременно.
Вот коды:
back_server.py
import os
import subprocess
def run_server():
current_dir = os.getcwd()
target_dir = os.path.join(current_dir, 'marketBack/BackServer')
subprocess.Popen(['python', f'{target_dir}/manage.py', 'runserver'], universal_newlines=True)
front_server.py
import os
import subprocess
def run_server():
current_dir = os.getcwd()
target_dir = os.path.join(current_dir, 'marketPlaying/market-playing')
os.chdir(target_dir)
process = subprocess.Popen(['npm', 'start'], universal_newlines=True, shell=True)
return process
server.py
import back_server
import front_server
def run_server_all():
back_server.run_server()
front_server.run_server().communicate()
run_server_all()
Когда я проверяю состояние front_server с помощью subprocess.communicate()
, он также возвращает вывод back_server. Разве subprocess.Popen не создает независимый процесс? Почему front_server.run_server().communicate()
возвращает состояние back_server тоже?