In _capture_logs, add sys.stdout.write() and sys.stdout.flush() to print live logs to terminal. This is necessary when stdout and stderr are piped in subprocess.Popen.
Add context.cancel() so that gRPC server initiates cancellation of gRPC call. Using return does not cancel and clean up, resulting in endless print.
Fixes:
_capture_logs
, addsys.stdout.write()
andsys.stdout.flush()
to print live logs to terminal. This is necessary whenstdout
andstderr
are piped insubprocess.Popen
.context.cancel()
so that gRPC server initiates cancellation of gRPC call. Usingreturn
does not cancel and clean up, resulting in endless print.