首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python & Vte等待进程Pid完成

Python & Vte等待进程Pid完成
EN

Stack Overflow用户
提问于 2014-05-10 13:34:24
回答 1查看 368关注 0票数 3

我使用GTK窗口中的VTE模块来运行和显示bash脚本的结果。

代码语言:javascript
复制
      adresse = self.champ.get_text()    
      pid = self.v.fork_command(None, ['/bin/bash', "./pluzz.sh", adresse])

      if pid == None:         #pseudocode
          print "Finish"

如果有time.sleep或循环,子进程将阻塞(不要运行)。我该怎么做?谢谢

编辑:尝试如下:

代码语言:javascript
复制
def check_pid(pid):        
    """ Check For the existence of a unix pid. """
    try:
        os.kill(pid, 0)
    except OSError:
        return False
    else:
        return True

问题是返回一次是True,如果我编写了一个循环,bash脚本就会阻塞。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-11 14:24:08

我找到了一个解决办法:

代码语言:javascript
复制
def __init__(self):
   a=0
   self.fenetre = gtk.Window(gtk.WINDOW_TOPLEVEL)
   [...]
   self.v = vte.Terminal()
#  self.v.connect ("child-exited", lambda term: gtk.main_quit())  # this is the line to change
   self.v.connect ("child-exited", lambda term: self.copie(self, a)) # the redirection after the process is finish
   self.v.show()

def download(self, a, donnees=None): 
   child_pid = self.v.fork_command(None, ['/bin/bash', "./pluzz.sh", adresse])

def copie(self, a, donnees=None):        
              print "FINISH"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23581690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档