由python启动的进程的子进程不存在

时间:2011-09-19 07:49:01

标签: python windows subprocess

我使用python的子进程在win7中运行'mstsc'程序:

>>> import subprocess
>>> p=subprocess.Popen('mstsc')
>>> p.pid
8884  

然而,当我检查Windows的进程监视器时,'8884'进程不存在,而另一个'mstsc'确实存在。所以我想知道'mstsc'在调用子进程时是否创建了另一个子进程。请帮帮忙?

1 个答案:

答案 0 :(得分:6)

嗯,我仍然是python的新手,但你仍然可以通过这个。

Popen类在Windows中使用CreateProcess函数来执行子程序。 CreateProcess函数创建一个新进程及其主线程。此新进程在调用进程的安全上下文中运行。

在内部,它使用CreateProcessAsUser或CreateProcessWithLogonW函数在用户的安全上下文中运行新进程。

根据我的理解,它会为实际执行的suprocess.Popen()提供不同的pid。