OS X xác định ứng dụng nào đang truy cập vào ổ cứng và ngăn chặn việc phóng ra?


17

Tôi đang chạy OS X 10.6 Server và tôi muốn đẩy ổ đĩa ngoài của mình để tôi có thể thực hiện một số bảo trì đĩa như chống phân mảnh. Tuy nhiên, khi tôi cố gắng đẩy ổ đĩa ra, nó không báo ổ đĩa đang được sử dụng. Tôi có thể buộc đẩy nó ra nhưng điều đó có thể gây ra tham nhũng ... Làm thế nào tôi có thể biết ứng dụng nào đang sử dụng ổ đĩa và giữ nó mở?

Câu trả lời:


25

Hãy thử sudo lsof | grep /Volumes/External, trong đó "Bên ngoài" sẽ là tên của ổ đĩa ngoài của bạn. Bạn có lưu trữ dữ liệu của bất kỳ dịch vụ nào trong ổ đĩa đó không?


Chỉ là một số thư mục được chia sẻ, nhưng tôi biết rằng tất cả các máy khách trên mạng đã loại bỏ các chia sẻ đó và toàn bộ máy chủ.
Jamone

Không phải lúc nào cũng quan trọng. Đôi khi các quy trình AFP / SMB / NFS / FTP / etc sẽ để các tệp đang mở chỉ vì dịch vụ đang chạy. Đặt cược tốt nhất là cố gắng dừng dịch vụ, sau đó đẩy ra. Điều đó sẽ tốt hơn so với sử dụng lệnh trên cùng với kill -9. Bạn có thể dừng dịch vụ thông qua dòng lệnh bằng một cái gì đó như sudo serveradmin stop smb, sau đó khởi động nó bằng cách sudo serveradmin start smb, trong đó "smb" là tên của dịch vụ. sudo serveradmin listsẽ cho thấy tất cả
churnd

Thông thường đó là công cụ lập chỉ mục Spotlight!
JGFMK

5

lsof - Danh sách các tệp đang mở

Tại lệnh của bạn, chỉ cần gõ sudo lsofđể xem danh sách các tệp đang mở, vị trí và quy trình id của chúng để bạn có thể giết tiến trình.

Để tinh chỉnh nó một chút bạn có thể sử dụng sudo lsof | grep hard drive name.

Một khi bạn có pid sudo kill -9 pidđể giết quá trình nghịch ngợm.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.