Как запустить команду, используя подпроцесс с интервалами времени ожидания в Python - PullRequest
0 голосов
/ 07 июня 2019

Я пытаюсь выполнить скрипт python с помощью модуля подпроцесса. Работает без таймаута.Вот скрипт Python, который я использовал для запуска с подпроцессом:

sample.py

count=0
while(True):
    print(count)
    count+=1

Проблема в том, что sample.py выполняется бесконечно. Так что я пытаюсьустановить тайм-аут для запуска этого скрипта. Я гуглил, и некоторые из них предложили использовать функцию check_output () для получения результатов с использованием тайм-аута. Так что я изменил,

out = check_output('python3 /home/gomathi/sample.py', stderr=STDOUT, timeout=5,shell=True)

Но этоне будет работать для меня, он все еще выполняет sample.py даже после истечения времени ожидания.

Что я должен использовать для решения этой проблемы?

Python версия: 3.6.7

out=subprocess.Popen(['python3 /home/gomathi/sample.py'],stdout=subprocess.PIPE,stderr=subprocess.STDOUT,shell=True)

Затем я изменил подпроцесс на функцию check_output:

out = check_output('python3 /home/gomathi/sample.py', stderr=STDOUT, timeout=5,shell=True)

Я ожидаю, что скрипт (sample.py) долженостановите работу, как только истечет время ожидания.

...