我正在使用python命令
import commands
tmp = "my command" #any command like ls
status, output = commands.getstatusoutput(tmp)
它完美地工作。现在,我有几个命令可能需要5秒钟以上的时间或永远卡住。我想在5秒钟后杀死此类命令。 任何指针。
答案 0 :(得分:1)
您可以使用subprocess模块(不推荐使用commands
)。
import shlex, subprocess, time
command = "command"
args = shlex.split(command)
p = subprocess.Popen(args)
start_time = time.time()
while time.time() - start_time < timeout:
time.sleep(0.1)
if p.poll() is not None:
break
if p.returncode is not None:
p.kill()
答案 1 :(得分:0)
我想出了最简单的解决方案:
from easyprocess import EasyProcess
tmp = "my command" #any command like ls
s = EasyProcess(tmp).call(timeout=5)
print "return_code: ",s.return_code
print "output: ", s.stdout