weka에서 파일을 강제로 잠금 해제하는 방법은 무엇입니까?

weka에서 파일을 강제로 잠금 해제하는 방법은 무엇입니까?

일부 파일을 중앙 집중화하려고 할 때웨카 파일 시스템일부 다른 클라이언트가 이미 잠금을 보유하고 있고 어떤 프로세스/호스트가 잠금을 갖고 있는지 확인할 수 없기 때문에 실패합니다. 클라이언트가 weka에서 파일을 잠금 해제하도록 강제하는 방법은 무엇입니까?

답변1

일반적으로 네트워크 파일 시스템(비 NFS)의 클라이언트에서 파일을 잠금 해제할 수 있는 방법은 없으며 다른 파일 시스템에서도 마찬가지라고 가정합니다. 일부 파일 시스템에서는 다음을 허용합니다.잠금 해제서버 측에서.

클라이언트에서 이를 달성하는 유일한 방법은 mv해당 파일을 사용하고 이름과 내용은 동일하지만 inode가 다른 새 파일을 만드는 것입니다.

mv $FILE $FILE.locked; cp -p $FILE.locked $FILE

그러면 잠긴 파일의 이름이 바뀌고 접미사가 추가된 .locked다음 원래 파일 이름으로 다시 복사됩니다. 이제 원본과 동일한 내용과 속성을 가진 파일이 생기지만 새 inode가 있으므로 잠기지 않습니다( .locked그러나 원본 inode가 있는 파일은 여전히 ​​잠긴 상태로 유지됩니다).

그러나 의미를 이해해야 합니다. 원본 파일의 파일 설명자를 계속 저장하는 프로세스가 있는 경우(동일한 클라이언트 또는 다른 클라이언트에서) 이제 이전 파일의 파일 설명자를 접미사로 저장합니다 .locked. 동일한 이름을 가진 새 파일이 아니므로 새 파일에서 수행한 모든 변경 사항은 이러한 프로세스에 반영되지 않습니다. 해당 이름의 파일만 처리뒤쪽에/는 새 파일을 사용합니다 mv.cp

관련 정보