我一度怀疑是权限问题, 导致无法获取锁, 于是查阅了不少关于权限的资料.
查看文件权限, 值得在意的是s, 和T....查阅文献得知s是指setuid, T指sticky bit:
Real, Effective and Saved UserID in Linux 详细讲了三者的作用.
setuid
当执行该文件时,...Sticky BIT 权限: 总结一句话作用, 就是在文件上设置, 防止被文件夹写权限者误删....将档案file1.txt和file2.txt设为该档案拥有者, 与其所属同一个群体者可写入, 带其它人不可写入:
chmod ug+w,o-w file1.txt file2.txt
进程问题
其实原因是父进程退出时...与文件的执行权限并无关系, 之所以无法获取锁, 只是因为父进程退出后, 没有子进程变为孤儿进程, 且没有退出.