如何解锁被进程锁定的文件

如何解锁被进程锁定的文件

该文件被一个进程锁定,在我的例子中是 java。我只希望释放锁。

lsof | grep /home/user/workspace1

lsof

一个临时解决方案是从“系统监视器”中“结束进程”。 结束进程 但终止 java(Java 虚拟机)将终止使用 java 的所有其他程序。那么我该如何释放任何进程持有的锁呢?出于同样的目的,Windows 有一个名为“Unlocker”的应用程序。

答案1

尝试

lockf - 应用、测试或删除打开文件上的 POSIX 锁

lockf() 函数允许使用咨询模式锁锁定文件的某些部分。其他进程对 lockf() 的调用如果试图锁定已锁定的文件部分,则会返回错误值或阻塞,直到该部分解锁。进程终止时,将删除该进程的所有锁定。常规文件支持使用 lockf() 进行记录锁定。IBM

答案2

我不太确定这是否适用于你的特定锁文件,但是lock-remove也许值得尝试一下:

lockfile-remove [--lock-name] filename

DESCRIPTION
   Lockfile-progs provides a set a programs that can be used to  lock  and
   unlock mailboxes and files safely (via liblockfile):

因此,尝试类似

lockfile-remove /home/user/workspace1/.metadata/.lock

另一种更残酷的方法就是直接删除锁文件。

相关内容