답변:
lslocks
의에서 폴더의 유틸리티 - 리눅스 패키지 , 정확히이 일을합니다.
에서 MODE
열 잠금을 기다리는되는 프로세스 것은으로 표시됩니다 *
.
lsof
Joel Davis가 제안한 방식을 사용할 수 있습니다 .
lslocks
reads /proc/locks
는 파일을 이름이 아닌 장치와 inode로 식별한다는 경고와 함께 직접 읽을 수 있습니다. 파일을 알고 있으므로 문제가되지 않습니다. 차단 된 항목에는 ->
잠금 유형 열 앞에 접두사 가 붙습니다 (따라서 해당 행에 열 추가).
두 가지 가능성 : lsof
(내 환경 설정) 또는 lslk
(특히 파일 잠금의 경우) :
[root@policyServer ~]# lslk | grep "master.lock"
SRC PID DEV INUM SZ TY M ST WH END LEN NAME
master 1650 253,0 12423 33 w 0 0 0 0 0 /var/lib/postfix/master.lock
[root@policyServer ~]# lsof | grep "master.lock"
master 1650 root 10uW REG 253,0 33 12423 /var/lib/postfix/master.lock
lslk의 출력은 자체 확장 적이지만 lsof
잠금 설명을 "FD"열 ( 10uW
위)에 넣습니다 . 매뉴얼 페이지에서 :
The mode character is followed by one of these lock characters, describing the type of lock applied to the file:
N for a Solaris NFS lock of unknown type;
r for read lock on part of the file;
R for a read lock on the entire file;
w for a write lock on part of the file;
W for a write lock on the entire file;
u for a read and write lock of any length;
U for a lock of unknown type;
x for an SCO OpenServer Xenix lock on part of the file;
X for an SCO OpenServer Xenix lock on the entire file;
space if there is no lock.
따라서 위의 "FD"열은 다음과 lsof
같이 분류됩니다.
10
이 열린 파일의 리터럴 설명자입니다. 에 의해 연결되는 것/proc/1650/fd/10
u
읽고 쓸 수있는 파일이 열려 있습니다
W
프로그램에 파일에 대한 쓰기 잠금이 있습니다.
flock
입니다. 또한 ! = 뮤텍스. 귀하의 GREP이 포스트에서처럼 잠금을 놓친 것 (첫 번째 필드를 언급하지 않기 ... 프로그램 이름)
lsof는 파일 목록을 보는 데 도움이 될 수 있습니다. 잠긴 파일을 보는 방법은 다음과 같습니다.
sudo lsof /var/lib/dpkg/lock