OS X określa, która aplikacja uzyskuje dostęp do dysku twardego i zapobiega wysunięciu?

17

Korzystam z systemu OS X 10.6 Server i chcę wysunąć dysk zewnętrzny, aby móc przeprowadzić konserwację dysku, na przykład go uszkodzić. Jednak gdy próbuję wysunąć dysk, nie powiedziano, że dysk jest w użyciu. Mogę wymusić wysunięcie, ale może to spowodować uszkodzenie ... Jak mogę stwierdzić, która aplikacja korzysta z napędu i trzyma go otwartego?

jamone
źródło

Odpowiedzi:

25

Spróbuj sudo lsof | grep /Volumes/External, gdzie „Zewnętrzny” to nazwa dysku zewnętrznego. Czy udostępniasz dane usług poza tym dyskiem?

churnd
źródło
Tylko niektóre foldery współdzielone, ale wiem, że wszyscy klienci w sieci wyrzucili te udziały i cały serwer.
jamone
Nie zawsze ma to znaczenie. Czasami procesy AFP / SMB / NFS / FTP / etc pozostawiają otwarte pliki tylko dlatego, że usługa jest uruchomiona. Najlepiej jest spróbować zatrzymać usługę, a następnie wysunąć. To byłoby lepsze niż użycie powyższego polecenia razem z kill -9. Możesz zatrzymać usługę za pomocą wiersza poleceń, używając czegoś takiego sudo serveradmin stop smb, a następnie uruchomić ją sudo serveradmin start smb, gdzie „smb” to nazwa usługi. sudo serveradmin listpokaże je wszystkie.
churnd
Zwykle jest to indeksowanie Spotlight!
JGFMK
5

lsof - lista otwartych plików

Na polecenie promt wystarczy wpisać, sudo lsofaby zobaczyć listę otwartych plików oraz ich lokalizację i identyfikator procesu, abyś mógł zabić proces.

Aby to trochę ulepszyć, możesz użyć sudo lsof | grep hard drive name.

Kiedy będziesz miał pid, sudo kill -9 pidżeby zabić niegrzeczny proces.

Jon Rhoades
źródło