1

Я на текущей OS X 10.7. Иногда я хочу проверить, какое приложение блокирует определенный файл. Я делаю это

lsof | grep $FILENAME

Я заметил, что выполнение этой команды вызывает два экземпляра lsof . Это почему?

1 ответ1

4

lsof делает это внутренне, чтобы избежать блокировки. Если он должен выполнить операцию, которая может зайти в тупик, он выполняет в ней вспомогательный процесс. Если операция блокируется, она может убить вспомогательный процесс. Это задокументировано в руководстве:

Lsof может быть заблокирован некоторыми функциями ядра, которые он использует - lstat(2), readlink(2) и stat(2). Эти функции останавливаются в ядре, например, когда узлы, на которых находятся смонтированные файловые системы NFS, становятся недоступными.

Lsof пытается разбить эти блоки с помощью таймеров и дочерних процессов, ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .