我有两个已定义的函数,foo它们bar运行pexpect时使用pexpect.spawn. 接下来它只是使用 pexpect 发送一个 control-csendcontrol并close告诉正在运行的脚本关闭,然后终止该对象。程序运行后,对象仍在内存中运行,看起来像 control-c 和/或child.close从未到达foo()
该脚本应该终止我生成的对象,但是我的if逻辑bar(child)似乎对在其中创建的对象没有任何影响foo()
这是代码:
def foo():
child = pexpect.spawn ('./script.sh')
return child
def bar(child):
if child.isalive():
child.sendcontrol('c')
child.close()
if child.isalive():
print 'Child did not exit gracefully.'
else:
print 'Child exited gracefully.'
a = foo()
bar(a)
该程序总是以打印“孩子优雅地退出”结束,但让我script.sh在后台运行
此代码在这里有效:
def bar(child):
child.sendcontrol('c')
与创建的对象交互正常,foo()但由于某种原因,我的其他具有if逻辑的代码运行if正确,但对我的对象没有做任何事情