Использование модуля «подпроцесс» с таймаутом

Вот код Python для запуска произвольной команды, возвращающей ееstdout данные, или вызовите исключение для ненулевых кодов выхода:

proc = subprocess.Popen(
    cmd,
    stderr=subprocess.STDOUT,  # Merge stdout and stderr
    stdout=subprocess.PIPE,
    shell=True)

communicate используется для ожидания завершения процесса:

stdoutdata, stderrdata = proc.communicate()

subprocess модуль не поддерживает тайм-аут - возможность убить процесс, запущенный более чем на X секунд, поэтомуcommunicate может потребоваться вечность, чтобы бежать.

Чтоsimplest способ реализовать таймауты в программе Python, предназначенной для запуска в Windows и Linux?

Ответы на вопрос(29)

Ваш ответ на вопрос