Вы задаете слишком много деталей, поэтому трудно дать подробный ответ, но в целом я бы использовал модуль signal
для печати статуса.
BSD имеет SIGINFO
(связанный с ^T
) именно для этой цели; Linux & Windows, к сожалению, не реализует этого, поэтому он не очень портативен.
В Linux, но вы можете использовать SIGUSR1
, вы не можете отправить это с клавиатуры, но вы можете использовать kill
.
Вы также можете использовать SIGINT
(^C
), чтобы распечатать статус. Это имеет побочный эффект, который больше не может выйти из программы с помощью^C.
Также см: Can I make use of an interrupt to print a status while still continue process?
@Carpetsmoker Спасибо! Это сработало. Если вы опубликуете ответ, я соглашусь. –