【发布时间】:2015-12-05 04:03:08
【问题描述】:
我正在使用 pexpect 生成一个 bash shell,然后使用 sendline 在 bash shell 中执行其他进程。
有什么方法可以获取生成的 bash shell 的 pid?
如何获取我在 bash 中启动的进程的 pid?
【问题讨论】:
我正在使用 pexpect 生成一个 bash shell,然后使用 sendline 在 bash shell 中执行其他进程。
有什么方法可以获取生成的 bash shell 的 pid?
如何获取我在 bash 中启动的进程的 pid?
【问题讨论】:
Manuel 的回答实际上是不正确的。但这不是他的错,而是预期的错。
调用此 Python 代码
child=pexpect.spawn("gdb")
child.pid
给了我14470 的pid 值。但是当我通过 bash 控制它时,我看到 gdb 的 pid 值为14473。这可能是因为 pexpect 调用了一个包装器并返回包装器的 pid 而不是真正的进程。
【讨论】:
如果您检查documentation of the spawn class,您会发现您可以使用pid 属性获取生成进程的pid,所以
spawnedBash = pexpect.spawn('bash')
print(spawnedBash.pid)
应该打印你生成的进程的 pid
【讨论】: