저는 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