1
我在Win7运行“MSTSC”程序:过程Python的子开始并使用Python的子进程不存在
>>> import subprocess
>>> p=subprocess.Popen('mstsc')
>>> p.pid
8884
然而,当我检查Windows的过程箴言报的“8884”进程不存在,另一个'mstsc'确实存在。所以我想知道'mstsc'是否在调用子进程时创建另一个子进程。请帮忙?
我在Win7运行“MSTSC”程序:过程Python的子开始并使用Python的子进程不存在
>>> import subprocess
>>> p=subprocess.Popen('mstsc')
>>> p.pid
8884
然而,当我检查Windows的过程箴言报的“8884”进程不存在,另一个'mstsc'确实存在。所以我想知道'mstsc'是否在调用子进程时创建另一个子进程。请帮忙?
嗯,我仍然是一个Python新手,但你仍然可以通过这个。
Popen类在Windows中使用CreateProcess函数来执行子程序。 CreateProcess函数创建一个新进程及其主线程。这个新进程在调用进程的安全上下文中运行。
它在内部使用CreateProcessAsUser或CreateProcessWithLogonW函数在用户的安全上下文中运行新进程。
根据我的理解,会给实际执行的suprocess.Popen()提供不同的pid。
我已经通过使用'subprocess.Popen('notepad')'开始'记事本'的测试,它返回与进程监视器中显示的相同的pid。 – yelo
我已修复它。这个问题的原因是,Python的版本是32位,而我的主机是64位。在我升级了python之后,两个pid是一样的。 – yelo