以下就是python调用系统命令设置超时:
-
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 ( )
- print TIMEOUT_COMMAND(['ping','192.168.0.254'], 3)