Pexpect关闭了一个shell脚本

时间:2012-12-30 17:33:12

标签: python variables pexpect

我有两个定义的函数foobar运行pexpect,使用pexpect.spawn从命令行调用脚本。接下来它只是使用pexpect的sendcontrolclose发送一个control-c来告诉它正在运行的脚本关闭,然后终止该对象。程序运行后,对象仍在内存中运行,看起来像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但对我的对象没有做任何事情

1 个答案:

答案 0 :(得分:0)

我认为我的问题是我的.PY文件中的缩进被一个字符删除了