zoukankan      html  css  js  c++  java
  • 【转】python os.popen 超时问题

    python 版本 2.5.4 (在高版本python中提倡使用 subprocess.Popen 取代 os.popen)

    os.popen 会出现过长时间等待导致阻塞问题, 解决方法如下:

    [python] view plain copy print?
    def TIMEOUT_COMMAND(command, timeout):  
        """call shell-command and either return its output or kill it 
        if it doesn't normally exit within timeout seconds and return None"""  
        import subprocess, datetime, os, time, signal  
        cmd = command.split(" ")  
        start = datetime.datetime.now()  
        process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)  
        while process.poll() is None:  
            time.sleep(0.2)  
            now = datetime.datetime.now()  
            if (now - start).seconds> timeout:  
                os.kill(process.pid, signal.SIGKILL)  
                os.waitpid(-1, os.WNOHANG)  
                return None  
        return process.stdout.readlines()  
    

      

    原文出自:http://blog.csdn.net/cenziboy/article/details/8298844

  • 相关阅读:
    java常见异常
    实现两个整数变量交换
    java抽象类与接口
    Java内部类用法
    单例模式
    easyUI下拉列表点击事件的使用
    Java中使用HttpRequest获取用户真实IP地址端口
    js-easyUI格式化时间
    1124
    ACM算法
  • 原文地址:https://www.cnblogs.com/hester/p/7641258.html
Copyright © 2011-2022 走看看