Flock이 잠금 파일을 정리하지 않는 이유는 무엇입니까?

Flock이 잠금 파일을 정리하지 않는 이유는 무엇입니까?

프로세스가 완료된 후에도 잠금 파일이 삭제되지 않은 것을 볼 수 있습니까? flock파일을 보관하는 이유가 있나요 ? 또한 flock획득한 잠금이 있는지 어떻게 알 수 있나요?

crontab다음은 파일 의 예입니다.

* * * * * flock python <script_name>.py

답변1

대부분의 사용 사례에서는 flock잠금 파일을~ 아니다"청소"하십시오. 그렇지 않으면 다음 시나리오를 상상해 보세요.

  • 프로세스 A는 잠금 파일을 열고 존재하지 않는 파일을 발견하여 생성합니다.
  • 프로세스 A가 잠금을 획득합니다.
  • 프로세스 B가 잠금을 엽니다(이미 존재함을 발견함)
  • 프로세스 B는 잠금을 획득하려고 시도하지만 기다려야 합니다.
  • 프로세스 A가 잠금을 해제합니다.
  • 프로세스 B는 즉시 잠금을 획득합니다.
  • 프로세스 A가 잠금 파일을 삭제합니다.
  • 프로세스 C는 잠금 파일을 열고 존재하지 않는 것을 발견하여 새 잠금 파일을 생성합니다. 지금은 열려 있는 상태입니다.다른프로세스 B가 잠근 파일을 잠급니다.
  • 프로세스 C는 잠금을 획득하려고 시도하고 성공합니다. 하지만 프로세스 B가 여전히 잠금 파일을 열고 잠겨 있기 때문에 기다려야 했습니다.

관련 정보