【问题标题】:How do I get the pid of a spawned process using pexpect?如何使用 pexpect 获取衍生进程的 pid?
【发布时间】:2015-12-05 04:03:08
【问题描述】:

我正在使用 pexpect 生成一个 bash shell,然后使用 sendline 在 bash shell 中执行其他进程。

有什么方法可以获取生成的 bash shell 的 pid?
如何获取我在 bash 中启动的进程的 pid?

【问题讨论】:

    标签: python pid pexpect


    【解决方案1】:

    Manuel 的回答实际上是不正确的。但这不是他的错,而是预期的错。

    调用此 Python 代码

    child=pexpect.spawn("gdb")
    child.pid
    

    给了我14470 的pid 值。但是当我通过 bash 控制它时,我看到 gdb 的 pid 值为14473。这可能是因为 pexpect 调用了一个包装器并返回包装器的 pid 而不是真正的进程。

    【讨论】:

      【解决方案2】:

      如果您检查documentation of the spawn class,您会发现您可以使用pid 属性获取生成进程的pid,所以

      spawnedBash = pexpect.spawn('bash')
      print(spawnedBash.pid)
      

      应该打印你生成的进程的 pid

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-24
        • 2016-02-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-11
        • 1970-01-01
        相关资源
        最近更新 更多