Python 2.x 实现命令执行超时控制的代码示例
本文介绍在 Python 2.x 环境中如何为命令行执行设置超时时间。由于标准库限制,需借助 threading.Timer 结合 subprocess.Popen 实现自动终止超时进程。文章提供了核心代码实现及测试用例,展示了如何通过线程机制在指定秒数后强制杀死子进程,适用于需要控制执行时长的脚本场景。
前言
在 Python 2.x 版本中,现有的命令行执行库或内置函数均不支持直接指定命令执行的超时时间,即无法在命令运行超过设定时间后自动终止该进程。虽然 Python 3.x 后续版本中可能已解决此问题,但在 Python 2.x 环境下仍需通过自定义方式实现这一功能。接下来将详细介绍具体的实现方法。
以下是一个简易的实现版本,展示了如何结合子进程与线程定时器来达成超时控制的目标。
import subprocess from threading import Timer def call(args, timeout): p = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE) timer = Timer(timeout, lambda process: process.kill(), [p]) try: timer.start() stdout, stderr = p.communicate() return_code = p.returncode return (stdout, stderr, return_code) finally: timer.cancel()
测试环节
print call(['hostname'], 2) print call(['ping', 'www.baidu.com'], 2)
总结
以上是本文介绍的全部内容。尽管该方案仍存在不足之处,但希望能为读者的学习或工作提供一定的参考价值。若有任何疑问,欢迎在评论区留言交流,感谢大家对本站的支持。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









