ファイルロックの監視と群れロックの使用

ファイルロックの監視と群れロックの使用

共有ロックを保持している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読み取り/共有ロックが613PIDによって発行されることを意味します。

#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/lockslsof

    perl -F'[:\s]+' -wlanE'
      BEGIN { $inode = (stat(pop))[1]; @ARGV = "/proc/locks" }
      say "pid:$F[4] [$_]" if $F[7] == $inode
    ' /tmp/file
    

おすすめ記事