Это нормально, если, когда ваш expect_background
отправляет quit\n
, порожденный процесс завершается. Это закроет файловый дескриптор ( spawn id ), связывающий ожидаемый процесс, и поэтому interact
не удастся, когда он попытается продолжить чтение (или запись) процесса.
Вы можетеподавить ошибку, добавив в фоновую команду строку, которая обнаруживает конец файла и завершает работу, когда это происходит:
expect_background {
"Now recording all stats to file every {0}ms" \
{ sleep 10 ; send "stats record stop\n" ; \
expect "Stopped recording stats to file." \
{ sleep 5 ; send "quit\n"; \
expect eof exit } } }