下面的方法在Windows下没问题,但Linux下执行超时时,命令进程不能被杀死。
Linux下可以参考该方法:https://gist.github.com/1306188
# coding: utf-8 # 带timeout的命令执行 import time import subprocess class TimeoutError(Exception): pass def command(cmd, timeout=60): """执行命令cmd,返回命令输出的内容。 如果超时将会抛出TimeoutError异常。 cmd - 要执行的命令 timeout - 最长等待时间,单位:秒 """ p = subprocess.Popen(cmd, stderr=subprocess.STDOUT, stdout=subprocess.PIPE, shell=True) t_beginning = time.time() seconds_passed = 0 while True: if p.poll() is not None: break seconds_passed = time.time() - t_beginning if timeout and seconds_passed > timeout: p.terminate() raise TimeoutError(cmd, timeout) time.sleep(0.1) return p.stdout.read() if __name__ == "__main__": print command(cmd='ping www.redicecn.com', timeout=1)
呵呵,谢谢
VaTG790i.最好的<a href=http://www.kyfei.com>网站推广软件</a>,
非常好
....................
;ui;普i;uighur;ui;ui;个
在unix网络编程中看到了关于TCP/IP的一些内容,我感觉还是写的不够。正在下载中,一定
下载地址呢