OS X визначає, яка програма отримує доступ до жорсткого диска та запобігає викиду?


17

Я запускаю OS X 10.6 Server, і я хочу вийняти зовнішній диск, щоб я міг виконати деяке обслуговування диска, наприклад дефрагментацію. Однак, коли я намагаюся вийняти диск, не вдається сказати, що диск використовується. Я можу змусити його відкинути, але це може спричинити корупцію ... Як я можу сказати, яка програма використовує накопичувач і тримає його відкритим?

Відповіді:


25

Спробуйте sudo lsof | grep /Volumes/External, де "External" було б назвою вашого зовнішнього накопичувача. Ви розміщуєте дані будь-яких служб із цього диска?


Просто кілька спільних папок, але я знаю, що всі клієнти в мережі викинули ці папки та весь сервер.
jamone

Це не завжди має значення. Іноді процеси AFP / SMB / NFS / FTP / тощо залишають відкриті файли лише тому, що служба працює. Найкраще зробити спробу зупинити послугу, а потім вийняти її. Це було б краще, ніж використовувати вищевказану команду разом з kill -9. Ви можете зупинити службу за допомогою командного рядка чимось на зразок sudo serveradmin stop smb, а потім запустити її sudo serveradmin start smb, де "smb" - назва служби. sudo serveradmin listпокаже їх усім.
churnd

Зазвичай це індексація Spotlight!
JGFMK

5

lsof - Список відкритих файлів

У вашому командному рядку просто введіть, sudo lsofщоб побачити список відкритих файлів та їх місцезнаходження та ідентифікатор процесу, щоб ви могли вбити процес.

Щоб трохи її вдосконалити, ви могли б скористатися sudo lsof | grep hard drive name.

Після того, як у вас є прищі, sudo kill -9 pidщоб вбити неслухняний процес.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.