공유 잠금을 보유하고 있는 PID 목록을 얻고 싶습니다 /tmp/file
. 간단한 명령줄 도구를 사용하여 이것이 가능합니까?
답변1
에서
man lsof
:FD는 파일의 파일 설명자 번호입니다. FD 뒤에는 파일이 열리는 모드를 설명하는 다음 문자 중 하나가 옵니다.
The mode character is followed by one of these lock characters, describing the type of lock applied to the file: R for a read lock on the entire file; W for a write lock on the entire file; space if there is no lock.
따라서 R
이는 3uR
읽기/공유 잠금이 613
PID에 의해 발행됨을 의미합니다.
#lsof /tmp/file
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
perl 613 turkish 3uR REG 8,2 0 1306357 /tmp/file
직독
/proc/locks
비율lsof
,perl -F'[:\s]+' -wlanE' BEGIN { $inode = (stat(pop))[1]; @ARGV = "/proc/locks" } say "pid:$F[4] [$_]" if $F[7] == $inode ' /tmp/file
답변2
fuser /tmp/file
파일을 잠근 프로세스를 포함하여 파일이 열려 있는 모든 프로세스가 나열됩니다.