我在 win7 中使用 python 的子进程运行一个“mstsc”程序:
>>> import subprocess
>>> p=subprocess.Popen('mstsc')
>>> p.pid
8884
但是,当我检查 Windows 的进程监视器时,'8884' 进程并不存在,而另一个 'mstsc' 确实存在。所以我想知道'mstsc'在调用子进程时是否创建了另一个子进程。请帮忙?
最佳答案
嗯,我仍然是 Python 的新手,但你仍然可以通过这个。
Popen类使用windows中的CreateProcess函数来执行子程序。 CreateProcess 函数 创建一个新进程及其主线程。这个新进程在调用进程的安全上下文中运行。
它在内部使用 CreateProcessAsUser 或 CreateProcessWithLogonW 函数在用户的安全上下文中运行新进程。
根据我的理解,这会为实际执行的 suprocess.Popen() 提供不同的 pid。
关于python - 由 python 的子进程启动的进程不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7467835/