Nohup은 출력을 화면에 기록하지 않습니다.

Nohup은 출력을 화면에 기록하지 않습니다.

저는 nohup을 사용하여 Python 스크립트의 출력을 기록하려고 합니다. 하지만 nohup을 사용하지 않을 때는 화면에 출력이 표시됩니다.

XX:XX:XX에 시작됨

XX:XX:XX에 완료됨

그런데 nohup을 사용하는데 nohup.out 파일이 비어 있습니다. 무슨 일인지 아는 사람 있나요?

이것은 내가 사용하는 명령입니다:

nohup python myPython.py &

나는 이전에 nohup을 시도한 적이 있으며 매우 잘 작동했습니다. 또한 출력을 기록하기 위해 짧은 테스트 Python 스크립트를 실행해 보았지만 제대로 작동했습니다.

테스트 스크립트는 짧습니다.

string1 = ["John","1","2","0","f","a","s"]
line = [""]*6
line[3:6] = string1 [0:3]
print line

답변1

간단한 대답은 표준 출력이 자동으로 새로 고쳐지지 않는다는 것입니다.

다음과 같이 버퍼링되지 않은 모드로 변경할 수 있습니다.

sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)

자세한 내용은 아래 링크를 참조해주세요

https://stackoverflow.com/questions/230751/how-to-flush-output-of-python-print

관련 정보