eos_starter_lib.py 文件源码

python
阅读 26 收藏 0 点赞 0 评论 0

项目:thesis_scripts 作者: PhilippKopp 项目源码 文件源码
def run(cmd, timeout_sec):

    if (sys.version_info >= (3,5)):
        try:
            completed = subprocess.run(shlex.split(cmd), timeout=timeout_sec, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
            return completed.stdout.decode('utf-8'), completed.stderr.decode('utf-8')
        except subprocess.TimeoutExpired:
            message = 'Fitting got killed by timeout after '+str(timeout_sec)+' sec!'
            print (message)
            raise EslException(message)
    else:
        proc = subprocess.Popen(shlex.split(cmd), stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        kill_proc = lambda p: p.kill()
        timer = Timer(timeout_sec, kill_proc, [proc])

        try:
            timer.start()
            stdout,stderr = proc.communicate()
        finally:
            timer.cancel()
            if (proc.poll() == -9 ):
                raise EslException('Fitting probably got killed by timeout!')
            #if (proc.poll() != 0 ):
            #   raise EslException('Fitting crashed! returned '+str(proc.poll()))
            return stdout, stderr
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号