백그라운드 리디렉션

백그라운드 리디렉션

일부 메시지를 인쇄하기 위해 Python으로 일부 프로그램을 작성했습니다. 프로그램이 백그라운드로 이동하여 해당 메시지를 파일로 인쇄하고 싶습니다. 그래서 나는 bash에 다음과 같이 썼습니다: python program > message &. 문제: 프로그램을 중단할 때만(cat 또는 vi 사용) 메시지가 나타납니다. 문제가 무엇인지, 간단한 해결책이 있는지 설명해 줄 수 있는 사람이 있습니까?

답변1

Python의 출력이 tty가 아닌 경우 전체 버퍼링을 사용합니다.

--를 사용하여 프로그램을 실행하면 python -upython3의 stdout 및 stderr과 python2의 stdin이 버퍼링되지 않게 됩니다.

이는 백그라운드에서 실행되는 프로그램과 관련이 없으며 오히려 프로그램의 stdout이 tty가 아니라는 사실에 유의하세요.

답변2

플러싱이 도움이 되나요? 다른 사이트로의 링크가 문제가 되지 않기를 바랍니다. 바라보다https://stackoverflow.com/questions/230751/how-to-flush-output-of-print-function

관련 정보