【问题标题】:How to get a process instance (with pid or listening port) in Python?如何在 Python 中获取流程实例(带有 pid 或侦听端口)?
【发布时间】:2017-07-17 13:43:15
【问题描述】:

在 Python 中,subprocess.Popen(cmd) 可以返回一个subprocess.Popen 实例,它代表一个具有一定cmd 的进程。我想知道,是不是可以通过进程监听的端口或者进程的pid来获取这样的实例?

例如,有没有subprocess.getProcessesByPort(port)subprocess.getProcess(pid)之类的API?

我了解这种灵活性可能会导致安全问题,如果这是不可能的,我不会感到惊讶。我以前没有使用过这个模块,想寻找更多关于它的见解。

提前致谢!

【问题讨论】:

    标签: python process port pid


    【解决方案1】:

    psutil package 可能会以跨平台的方式提供您想要的。

    【讨论】:

    • 谢谢!我刚才检查了这个模块,它确实能够通过它的pid检索一个进程。那么是否可以将实例转换为 subprocess 模块中的实例?
    • 我不这样。因为 Popen 的构造函数调用 一个新的 进程:在 POSIX 上,该类使用类似 os.execvp() 的行为来执行子程序。在 Windows 上,该类使用 Windows CreateProcess() 函数。见documentation。另一方面,psutil 有它自己的进程抽象类:psutil.Process,它可能提供您需要的功能来自subprocess.Popen
    • 明白这很有意义。非常感谢!
    猜你喜欢
    • 2012-06-15
    • 2021-12-16
    • 1970-01-01
    • 1970-01-01
    • 2011-04-03
    • 2017-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多