0바이트로 채워진 unix nohup 로그

0바이트로 채워진 unix nohup 로그

백그라운드에서 모니터링 스크립트를 실행하고 있습니다. 연중무휴 24시간 이용 가능해야 합니다.

스크립트에는 모니터 출력을 기반으로 시작된 프로세스를 사용하여 nohup출력을 로그 파일 / 로 리디렉션하는 기능이 있습니다 home/nohub_logs/logfile.txt.

스크립트는 몇 시간 동안은 제대로 작동하지만 해당 시간이 지난 후에도 로그 파일의 길이는 여전히 0입니다. 때로는 모니터링 스크립트를 종료하고 스크립트를 다시 시작하면 일부 출력이 표시됩니다.

nohup startprocessscript.sh >> /home/nohuplog &

잠시 후 로그가 생성됩니다. 예를 들어 스크립트가 처음 24시간 이내에 실행되면 24시간 후에는 로그가 생성되지 않습니다. 스크립트를 다시 시작하면 로그가 생성됩니다.

nohup때때로 로그 파일이 생성된 데이터를 가져오지 못하는 이유가 무엇인지 잘 모르겠습니다 . 누구든지 도와주세요.

답변1

이 문제의 일반적인 원인은 출력 버퍼링입니다.

충분한 데이터가 기록된 후에만 스크립트 출력이 로그 파일로 플러시될 수 있습니다.

가능한 해결 방법은 다음 stdbufunbuffer같습니다.파이프라인에서 버퍼링 끄기

관련 정보