我正在使用pexpect生成 bash shell,然后使用sendline在bash shell中执行其他进程。
有没有办法获得衍生的bash shell的pid?
我怎样才能获得我在bash中开始的流程的pid?
答案 0 :(得分:4)
如果您选中documentation of the spawn class,则会发现您可以使用pid
属性获取生成流程的pid,所以
spawnedBash = pexpect.spawn('bash')
print(spawnedBash.pid)
应该打印您生成的进程的pid
答案 1 :(得分:1)
Manuel的答案实际上是不正确的。但这不是他的错,而是出于期待。
调用此python代码
child=pexpect.spawn("gdb")
child.pid
给我14470
的pid值。但是,当我通过bash控制它时,我看到gdb的值为pid 14473
。之所以可能发生这种情况,是因为pexpect调用了包装器并返回了包装器的pid,而不是实际的进程。