작성
·
325
2
./flock ex 혹은 ./flock sh 해서 lock을 걸어둔 상태에서 다른 터미널 창에서 cat lockfile하면 출력이 가능하던데 왜 가능한건지 모르겠습니다.
답변 2
1
fclock은 advisory lock 입니다. flock으로 파일을 exclusive locking 했다 하더라도 파일 시스템에서 locking 된 것이 아닙니다. advisory lock이라는 말은, 해당 파일 lock에 대해 flock()을 이용해 파일 접근 가능 여부를 확인하는 프로세스들 끼리만 동작이 된다는 말입니다. 일종의 약속인 것이죠.
그런데 cat 명령어는 fclock()으로 검사하기로 한 프로그램이 아니죠. 그렇기 때문에 flock()에 의해 잠겨있던 말든 파일에 접근이 가능합니다. rm으로 파일 삭제도 가능합니다.
0