Как разблокировать файл, заблокированный процессом
Файл заблокирован процессом, java в моем случае. Я только хочу, чтобы замок был снят.
lsof | grep /home/user/workspace1
Временным решением было "Завершить процесс" из "Системного монитора". Но завершение Java (виртуальная машина Java) приведет к завершению всех других программ, использующих Java. Так как мне снять блокировку, удерживаемую любым процессом? Для этой же цели в Windows есть приложение под названием "Unlocker".
2 ответа
Попробуйте lockf.
lockf - применить, протестировать или удалить блокировку POSIX для открытого файла
Функция lockf() позволяет блокировать разделы файла с помощью блокировок консультативного режима. Вызовы lockf() из других процессов, которые пытаются заблокировать секцию заблокированного файла, будут либо возвращать значение ошибки, либо блокировать, пока секция не станет разблокированной. Все блокировки для процесса удаляются, когда процесс завершается. Блокировка записи с помощью lockf() поддерживается для обычных файлов. IBM
Я не совсем уверен, что это будет работать на ваших конкретных файлов блокировки, но 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
Другой, более жестокий подход - просто удалить файл блокировки.