如何使用 pexpect 获取生成进程的 pid?

How do I get the pid of a spawned process using pexpect?

我正在使用 pexpect 生成 bash shell,然后使用 sendline 在 bash [=21] 中执行其他进程=].

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

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

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

应该打印生成进程的 pid

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

调用此 python 代码

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

给了我 14470 的 pid 值。但是当我通过 bash 控制它时,我看到 gdb 的 pid 值为 14473。这可能是因为 pexpect 调用包装器和 returns 包装器的 pid 而不是实际进程。