使用 os.system 函数时设置超时

Yon*_*eng 5 timeout os.system python-3.x

首先,我想说我刚开始学习python,我想在我的python脚本中执行maven命令(见下面的部分代码)

os.system("mvn surefire:test")

但不幸的是,有时这个命令会超时,所以我想知道如何设置一个超时阈值来控制这个命令。

也就是说,如果执行时间超过 X 秒,程序将跳过命令

更重要的是,其他有用的解决方案可以解决我的问题吗?提前致谢!

tde*_*ney 6

改用 subprocess 模块。通过使用列表并坚持使用默认值shell=False,我们可以在超时达到时终止进程。

p = subprocess.Popen(['mvn', 'surfire:test'])
try:
    p.wait(my_timeout)
except subprocess.TimeoutExpired:
    p.kill()
Run Code Online (Sandbox Code Playgroud)