共有ロックを保持しているPIDのリストを取得したいです/tmp/file
。簡単なコマンドラインツールを使用してこれは可能ですか?
答え1
から
man lsof
:FD はファイルのファイル記述子番号です。 FDの後には、ファイルが開くモードを説明する次の文字の1つが続きます。
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
ファイルをロックしたプロセスを含む、ファイルが開いているすべてのプロセスが一覧表示されます。