ちょっとハマったのでメモ。 ファイルを flock() で排他的にロックするために次のようにすると成功します。 % ruby -e 'File.open("hoge").flock(File::LOCK_EX); puts "OK"' OK が、NFS 上で同じことをやると失敗します。 % ruby -e 'File.open("hoge").flock(File::LOCK_EX); puts "OK"' -e:1:in `flock': Bad file descriptor @ rb_file_flock - hoge (Errno::EBADF) from -e:1:in `<main>' 7年前に書いたんですが、Linux は NFS ファイルシステムに対して flock() すると fcntl(F_SETLK) を使います。 で、fcntl(F_SETLK) は flock()