Как Mac OS X узнает, какие программы используют смонтированную файловую систему? - PullRequest
9 голосов
/ 07 ноября 2011

Это может звучать глупо, но до недавнего времени, если вы пытались размонтировать том, который использовался, Finder сообщил, что он используется, но не кем. Это простая функциональность Unix, если файл открыт в точке монтирования, не позволяйте его извлечь. Но теперь они, кажется, добавили функциональность, которая позволяет пользователю узнать, какие программы в настоящее время используют смонтированную систему, и я просматривал справочные страницы fopen, stat и т. Д. Для Unix, таких как операционные системы (дистрибутивы linux), и я могу Похоже, не найти аналогичные функции.

Эта функциональность специализирована, или я просто смотрю не в том месте?

Ответы [ 3 ]

4 голосов
/ 07 ноября 2011

Существуют вызовы уровня BSD (в основном lsof, источник которых http://www.opensource.apple.com/source/lsof/)), которые позволяют просматривать список файлов, открытых в процессе. Например, Activity Monitor использует их.

Используя lsof в качестве отправной точки, вы можете перебирать процессы и видеть, использует ли какой-либо из них файл под проверяемой точкой монтирования. Хотя могут быть более эффективные способы сделать это, о которых я не знаю. :)

0 голосов
/ 07 ноября 2011

Проверьте справочную страницу для fuser и запустите fuser -c /mountpoint

0 голосов
/ 07 ноября 2011

Это несколько специализировано.Проверьте утилиту lsof.

...