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

标签 python windows subprocess

我在 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/

相关文章:

python - 了解subprocess.TimeoutExpired,想在超时发生后杀死一个子进程

python - 如何确保用户在 python django 中只投票一次?

windows - 从 cmd 脚本如何查找它是从 cmd 控制台调用还是通过单击资源管理器调用

python - 线程子进程的奇怪输出

windows - 为什么 InstallShield 找不到文件?

mysql - 如何在 Windows 上备份 MySQL 数据库?

python - 将 subprocess.Popen 输出附加到文件?

python - 在 Python 中使用递归将一个数字写为 1 和 2 的数组,其总和等于该数字

python - 并发文件上传/下载和运行后台进程

类 Python 语言的 Python 解析器