我想对子进程调用产生的子进行超时。
所以作为测试:
#!/home/depot/.conda/envs/python3/bin/python
import subprocess
if __name__ == "__main__":
subprocess.call('./sleep.py', timeout=1)
正在运行的sleep.py
文件:
#!/home/depot/.conda/envs/python36/bin/python
from time import sleep
if __name__ =="__main__":
for j in range(3):
print(j)
sleep(1)
现在显然这没有实现任何超时。
我有点惊讶,因为该文件似乎暗示超时确实是一个选项:
Using the subprocess Module
然而,关于SO的其他答案似乎忽略了该功能并倡导创建定制的计时器:
Subprocess timeout does not work
Using module 'subprocess' with timeout
如何使用内置timeout
参数实现超时?