您可以为子流程提供
start_new_session模拟
C:
#!/usr/bin/env pythonimport osimport sysimport platformfrom subprocess import Popen, PIPE# set system/version dependent "start_new_session" analogskwargs = {}if platform.system() == 'Windows': # from msdn [1] CREATE_NEW_PROCESS_GROUP = 0x00000200 # note: could get it from subprocess DETACHED_PROCESS = 0x00000008 # 0x8 | 0x200 == 0x208 kwargs.update(creationflags=DETACHED_PROCESS | CREATE_NEW_PROCESS_GROUP) elif sys.version_info < (3, 2): # assume posix kwargs.update(preexec_fn=os.setsid)else: # Python 3.2+ and Unix kwargs.update(start_new_session=True)p = Popen(["C"], stdin=PIPE, stdout=PIPE, stderr=PIPE, **kwargs)assert not p.poll()[1]:CreateProcess()的进程创建标志



