Почему 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 тоже?

Вернуться на верх