美文网首页
python exec shell cmd with timeo

python exec shell cmd with timeo

作者: 橙姜 | 来源:发表于2018-02-08 10:08 被阅读0次

from subprocess import Popen

@staticmethod
def shell_cmd_timeout(cmd, timeout=0, cwd=None, env=None):
    cmd_open = Popen(cmd, shell=True, cwd=cwd, env=env)
    if not cmd_open:
        return -1
    t_timeout = timeout
    tick = 3
    ret = None
    while True:
        time.sleep(tick)
        ret = cmd_open.poll()
        if ret is not None:
            break
        if t_timeout > 0:
            t_timeout -= tick
        if t_timeout <= 0:
            # timeout, kill command
            try:
                cmd_open.kill()
                cmd_open.wait()
            except OSError:
                pass
            ret = -99999
            break
    return ret

相关文章

网友评论

      本文标题:python exec shell cmd with timeo

      本文链接:https://www.haomeiwen.com/subject/logzzxtx.html