다음 명령을 사용하여 실행 중인 프로그램의 표준 출력 및 오류 정보를 기록하고 싶습니다.
stdbuf -o 0 ./myprogram|& tee mylog
한 컴퓨터에서는 잘 작동합니다. 화면에서 stdout을 볼 수 있지만 mylog
다른 컴퓨터에서는 화면과 mylog
. 그들은 모두 Fedora OS와 x86_64입니다.
답변1
stdout과 stderr을 모두 버퍼링되지 않은 상태로 만들어 보십시오.
stdbuf -e 0 -o 0 ./myprogram |& tee mylog
편집하다:원래 답변을 대체했습니다. 위의 내용이 문제에 대한 해결책일 가능성이 높습니다.
답변2
COMMAND가 표준 스트림(예: "tee")의 버퍼링을 조정하는 경우 이는 "stdbuf" 변경 사항의 해당 설정을 재정의합니다.
여기를 읽어주세요.https://linux.die.net/man/1/stdbuf