from subprocess import Popen
@staticmethoddefshell_cmd_timeout(cmd, timeout=0, cwd=None, env=None):cmd_open = Popen(cmd, shell=True, cwd=cwd, env=env)ifnotcmd_open:return-1t_timeout = timeout? ? tick =3ret =NonewhileTrue:? ? ? ? time.sleep(tick)? ? ? ? ret = cmd_open.poll()ifretisnotNone:breakift_timeout >0:? ? ? ? ? ? t_timeout -= tickift_timeout <=0:# timeout, kill commandtry:? ? ? ? ? ? ? ? cmd_open.kill()? ? ? ? ? ? ? ? cmd_open.wait()exceptOSError:passret =-99999breakreturnret
作者:橙姜
鏈接:http://www.reibang.com/p/f0974735ad17
來源:簡書
著作權歸作者所有古今。商業(yè)轉載請聯(lián)系作者獲得授權,非商業(yè)轉載請注明出處瘦真。