У меня есть 3 файла:
sleeper.py
import subprocess
print('start sleeper')
subprocess.run(['sleep', '10'])
print('end sleeper')
waker.py
import subprocess
print('The waker begins')
try:
subprocess.run(['python3', 'sleeper.py'], timeout=5)
except subprocess.TimeoutExpired:
pass
print('The waker ends')
awake.py
import subprocess
print('Awake begin')
try:
subprocess.run(['python3', 'waker.py'], timeout=2.5)
except subprocess.TimeoutExpired:
pass
print('Awake end')
и я запускаю python3 awake.py
.
, но получаю следующий вывод:
Awake begin
The waker begins
start sleeper
Awake end
end sleeper
фактически большеТочно, я сразу получаю первые 3 строки принтера, затем через 2,5 секунды печатается 4-я строка, и я получаю приглашение bash, затем через 7,5 секунд в моей подсказке bash появляется end sleeper
.
как мне сделать такуничтожение подпроцесса через тайм-аут также убивает подпроцессы, запущенные этим подпроцессом?