解决方法
我认为你要找的是文件/ proc / locks.它显示系统中的当前文件锁.这不显示文件已被锁定多长时间,但它显示了哪个进程.也许您可以检测锁定何时在此文件中注册并测量经过的时间.一个样本是这样的:
cat /proc/locks 1: POSIX ADVISORY WRITE 2245 08:06:1182714 1073741824 1073741824 2: POSIX ADVISORY WRITE 2245 08:06:1182714 1073741826 1073742335 3: POSIX ADVISORY WRITE 3058 08:06:10752740 0 0 4: POSIX ADVISORY WRITE 3058 08:06:10752739 0 0 5: POSIX ADVISORY WRITE 2421 08:06:10752766 0 EOF 6: POSIX ADVISORY WRITE 2421 08:06:11142048 0 EOF 7: POSIX ADVISORY WRITE 2421 08:06:9964366 1073741824 1073742335 8: POSIX ADVISORY WRITE 2421 08:06:11142040 0 EOF
列是:
>第一:锁定#.>第二种:锁定类型(如果使用fcntl创建锁定,则为POSIX;如果使用flock创建,则为FLOCK).>第三:锁定模式(ADVISORY或MANDATORY)> Forth:锁定类型(WRITE或READ),对应于锁共享或独占.>第五:带锁的过程的PID.>第六:三个数字分隔:识别锁定文件.>第七:锁的起始字节.> Eighth:锁定的结束字节