美文网首页
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