Проблема в том, что команда exec
приостанавливает процесс Tcl, пока другой процесс не завершит свою работу. Это не большая проблема для чего-то быстрого, такого как chmod
, но для долгого отображения таймера это большая проблема.
Самое простое исправление, особенно если вас действительно не волнуетто, работает ли подпроцесс очень часто, означает поставить слово &
в конце exec
, чтобы код выполнялся в фоновом режиме, отключенный от Tcl.
exec ./xterm_counter.txt >@stdout &
(Если я правильно помню, это возвращает идентификатор процесса, позволяя периодически извлекать данные для завершения.)
Если это не сработает, вы можете либо запуститькод в конвейере (с таким перенаправлением это будет канал только для записи) или для запуска его из рабочего потока.