在Python的subprocess.Popen
中,可以使用timeout
參數(shù)來指定子進(jìn)程的超時時間。當(dāng)設(shè)置了timeout
參數(shù)后,如果子進(jìn)程在超時時間內(nèi)沒有完成,subprocess.TimeoutExpired
異常將被拋出。
下面是一個簡單的示例:
import subprocess
try:
result = subprocess.run(["ping", "www.google.com"], timeout=5, check=True)
print("Ping successful")
except subprocess.TimeoutExpired:
print("Ping timed out")
except subprocess.CalledProcessError as e:
print("Ping failed with error code", e.returncode)
在上面的示例中,subprocess.run
函數(shù)會執(zhí)行ping命令,如果執(zhí)行時間超過5秒,將會拋出subprocess.TimeoutExpired
異常。
另外,需要注意的是,timeout
參數(shù)只在Python 3.3及以上版本中可用。如果使用的是更早版本的Python,可以考慮使用signal
模塊來實現(xiàn)類似的功能。