Tôi đã gặp phải điều này ngày hôm nay trên một chiếc iMac mới một tháng tuổi. Điều duy nhất không mới mẻ về tài khoản của tôi là tài khoản của tôi, đã được sao chép trên 5 máy và 12 phiên bản MacOS chính bằng cách sử dụng Trợ lý di chuyển khi có thể, để lại một chút công bằng trong ~ / Library / Preferences /. Thật không may, trong các phiên bản gần đây, Apple đã làm cho việc dọn dẹp thư mục đó hiệu quả bằng cách dọn rác vì cfprefsd
quản lý thông tin ưu tiên thực sự và bạn cần nói chuyện độc đáo với defaults
tiện ích này.
Dù sao, tôi thích rằng mỗi khi tôi cố gắng thay đổi tùy chọn, tôi nhận được một chuỗi các mục nhật ký như thế này:
Jul 14 18:14:03 extravagant sharedfilelistd[411] <Critical>: [default] [<CFString 0x7fff77ea0e00 [0x7fff77f58440]>{contents = "com.apple.LSSharedFileList.RecentApplications"}] List write failed invalid info items: (null) properties: (null)
Jul 14 18:14:03 extravagant sharedfilelistd[411] <Error>: -[ListStore writeListItems:properties:withListIdentifier:notificationHander:] [com.apple.LSSharedFileList.RecentApplications] List write failed invalid info items: (null) properties: (null)
Jul 14 18:14:05 extravagant com.apple.preference.general.remoteservice[85562] <Warning>: Error getting number of recent items of type 2, LSSharedFileListCopyProperty returned NULL
Jul 14 18:14:11 extravagant com.apple.preference.general.remoteservice[85562] <Warning>: New number of recents: 30
Jul 14 18:14:11 extravagant com.apple.preference.general.remoteservice[85562] <Warning>: Error getting number of recent items of type 1, LSSharedFileListCopyProperty returned NULL
Jul 14 18:14:11 extravagant com.apple.preference.general.remoteservice[85562] <Warning>: Error getting number of recent items of type 2, LSSharedFileListCopyProperty returned NULL
Jul 14 18:14:11 extravagant com.apple.preference.general.remoteservice[85562] <Warning>: Error getting number of recent items of type 3, LSSharedFileListCopyProperty returned NULL
Jul 14 18:14:13 extravagant com.apple.xpc.launchd[1] (com.apple.preference.general.remoteservice[85562]) <Notice>: Service exited due to signal: Killed: 9
Ngoài ra, cả hai defaults domains
và vài chục tệp trong Tùy chọn đều nói với tôi rằng hầu hết các ứng dụng có tên miền mặc định thích hợp như com.example.appname cũng có một tên miền mặc định như com.example.appname.LSSharedFileList chứa danh sách các tệp được sử dụng gần đây. Ngoại trừ những tập tin gần đây họ không sử dụng. Không có tệp * .LSSharedFileList.plist nào thay đổi kể từ khi tôi di chuyển từ máy Yosemite cũ của tôi và cũng không có com.apple.recentitems.plist. Vì vậy, tôi đã dọn dẹp nhà cửa bằng cách chạy các lệnh này bên trong ~ / Library / Preferences /:
defaults delete com.apple.recentitems
rm com.apple.recentitems.plist*
Các defaults
lệnh bảo cfprefsd
để loại bỏ tất cả các thiết lập trong phạm vi đó, mà để lại một 42-byte logic trống tập tin plist và 0-byte .plist.lockfile tập tin đó rm
để loại bỏ việc lệnh.
defaults find LSSharedFileList |grep 'keys in domain .*LSShared'|cut -d"'" -f2 |xargs -L1 defaults delete
rm *LSSharedFileList.plist*
Ít rõ ràng hơn, nhưng về cơ bản là điều tương tự cho tất cả các defaults
tên miền có LSSharedFileList trong tên của chúng
find . -name "*.plist" -print0 |xargs -0 -L1 plutil -lint |grep -v ': OK$'|cut -d: -f1|sed 's/.*/"&"/' |xargs rm
Thậm chí ít rõ ràng hơn, nhưng rõ ràng là rất quan trọng. Đường ống này tìm thấy tất cả các tệp * .plist trong thư mục hiện tại (đó là ~ / Library / Preferences /,) kiểm tra từng plutil -lint
tệp hợp lệ với , phân tích tên tệp của những tệp không "OK", yêu cầu chúng bảo vệ khỏi không gian nhúng và tương tự, và loại bỏ tất cả. Trong trường hợp của tôi, các tệp * .plist không hợp lệ là tất cả các tệp cổ 0 byte cho những thứ không thể chạy trên El Cap, vì vậy tôi chắc chắn rằng mình không xóa bất kỳ thông tin thực tế nào. YMMV !!
find . -size 42c -name "*plist" -delete
Điều này quét ra bất kỳ tệp * .plist nào dài 42 byte, kích thước của một lô trống rỗng logic ở định dạng nhị phân. Tôi đã có một vài trong số những người treo xung quanh và họ có thể đã gây ra khiếu nại sharedfilelistd
.
killall sharedfilelistd
Điều đó đã chấm dứt trường hợp sharedfilelistd
chạy dưới tài khoản của tôi. Hệ thống tự động khởi động lại một thể hiện mới. Tôi không chắc điều này là cần thiết, nhưng có vẻ thận trọng vì tôi vừa xóa sạch một loạt thông tin từ hệ thống con sở thích có liên quan đến cách làm cũ của sharedfilelistd
El Cap.
LƯU Ý: 7 lệnh đó là phiên bản rút gọn của những gì tôi đã làm có ý nghĩa và có hiệu ứng, nằm rải rác trong 3 giờ chọc ngoáy và thử nghiệm và cố gắng tìm kiếm thông tin sharedfilelistd
không có kết quả.
Điều đáng chú ý là không có sự sudo
tham gia nào ở đây, bởi vì tôi đang ở trong ~ / Thư viện / Sở thích /, thao túng lĩnh vực sở thích của riêng tôi. Menu Mục gần đây và do đó các cài đặt của nó là dành riêng cho người dùng, do đó, bất cứ nơi nào cài đặt đó được lưu trữ (không bao giờ hoạt động mà ...) cũng phải dành riêng cho người dùng, không phải là thứ cần phải root. Có một phản hồi trước đó bao gồm sự cho phép lớn không thể giải thích được / ACL / xóa cờ, chạy bằng sudo, thậm chí không có tác dụng với tác giả và có thể gây ra tác hại nghiêm trọng cho hệ thống. Điều này là không có gì như thế. Cũng lưu ý rằng nó không yêu cầu đăng xuất, khởi động lại, khởi động trong Chế độ khôi phục hoặc làm bất cứ điều gì khác có khả năng gây rối.