logrotate가 postrotate와 압축 사이에서 기다리는 시간

logrotate가 postrotate와 압축 사이에서 기다리는 시간

저는 소프트웨어를 작성 중이며 프로세스가 logrotate와 같은 것에서 SIGHUP을 얻을 때 로그 파일을 다시 로드하고 싶습니다. 문제는 logrotate가 회전된 로그 파일 압축을 시작하기 전에 애플리케이션이 얼마나 많은 시간을 사용할 수 있느냐는 것입니다.

내가 찾은 맨페이지와 모든 참조에는 응용 프로그램이 로그를 "즉시" 다시 로드해야 한다고 나와 있지만, 예를 들어 이 작업이 1ms 또는 1초 안에 완료되어야 하는지는 나와 있지 않습니다.

답변1

안전을 위해: 전혀 없습니다.

Logrotate는 postrotate 명령이 완료되면 로그 파일이 더 이상 기록되지 않는다고 가정합니다. "로그 파일을 닫는 데 시간이 걸릴 수 있음"을 처리하는 방법에는 두 가지가 있습니다.

  • logrotate의 delaycompress옵션은 다음이 나올 때까지 압축 단계를 연기합니다.다음로그로테이션 호출. 그렇게 하면 다음 logrotate 실행에 걸리는 시간이 얼마든지 걸릴 수 있습니다(그렇게 하는 것은 꽤 나쁜 생각이겠지만).
  • 데몬에게 로그 파일을 닫았다가 다시 열도록 지시하는 명령줄 도구를 작성할 수 있으며 이 명령이 수행되는지 확인할 수 있습니다.~ 아니다데몬이 모든 로그 파일이 닫혔음을 확인할 때까지 종료합니다(해당하지는 않지만 파일이 다시 열릴 때까지 기다릴 필요는 없습니다). 그런 다음 사람들은 logrotate postrotate스탠자에서 이 명령줄 도구를 사용할 수 있습니다.

관련 정보