有时候我们在写Python脚本的时候程序中可能需要调用shell命令,有的shell命令执行之后立即返回结果,但有的时候shell命令会一直卡在那里,从而导致python主进程也一直卡在那里。最简单的解决方式就是给执行的这个shell命令加上一个超时时间,如果超时了则直接杀死子进程并抛出异常即可。
举一个我使用的例子吧,我需要在python的程序中获取到机器的磁盘目录占用情况,但是有的时候目标机器异常,导致获取失败,子进程一直卡在那里,从而导致我的python程序也卡在那里,无法向下运行。
原代码:
优化后的代码:
优化后的代码,当子进程运行时间超过5s时则强制中断。
网友评论