Saya mengalami ini hari ini di iMac yang berumur satu bulan. Satu-satunya hal yang tidak segar tentang itu adalah akun saya, yang telah direplikasi di 5 mesin dan 12 versi MacOS utama menggunakan Migration Assistant bila memungkinkan, meninggalkannya dengan sedikit kesalahan di ~ / Library / Preferences /. Sayangnya, dalam versi terbaru Apple telah membuatnya rumit untuk membersihkan direktori itu secara efektif dengan membuang file karena cfprefsd
mengelola info preferensi nyata dan Anda perlu berbicara dengan baik dengannya dengan defaults
utilitas.
Lagi pula, saya suka bahwa setiap kali saya mencoba mengubah preferensi saya mendapat urutan entri log seperti ini:
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
Juga, baik defaults domains
dan beberapa lusin file di Preferensi mengatakan kepada saya bahwa sebagian besar aplikasi dengan domain default yang tepat seperti com.example.appname juga memiliki domain default seperti com.example.appname.LSSharedFileList yang berisi daftar file yang baru saja digunakan. Kecuali mereka tidak menggunakan file baru-baru ini sama sekali. Tidak ada file * .LSSharedFileList.plist yang berubah sejak migrasi saya dari mesin Yosemite lama saya, dan tidak ada yang memiliki com.apple.recentitems.plist. Jadi saya membersihkan rumah dengan menjalankan perintah-perintah ini di dalam ~ / Library / Preferences /:
defaults delete com.apple.recentitems
rm com.apple.recentitems.plist*
The defaults
perintah memberitahu cfprefsd
untuk menghapus semua pengaturan di domain tersebut, yang meninggalkan 42-byte logis kosong berkas Plist dan 0-byte .plist.lockfile berkas yang rm
Menghapus perintah.
defaults find LSSharedFileList |grep 'keys in domain .*LSShared'|cut -d"'" -f2 |xargs -L1 defaults delete
rm *LSSharedFileList.plist*
Kurang jelas, tetapi pada dasarnya hal yang sama untuk semua defaults
domain dengan LSSharedFileList dalam nama mereka
find . -name "*.plist" -print0 |xargs -0 -L1 plutil -lint |grep -v ': OK$'|cut -d: -f1|sed 's/.*/"&"/' |xargs rm
Bahkan kurang jelas, tetapi tampaknya sangat penting. Pipa ini menemukan semua file * .plist di direktori saat ini (yang ~ / Library / Preferences /,) memeriksa masing-masing untuk validitas plutil -lint
, mem-parsing nama file dari mereka yang tidak "OK", meminta mereka untuk melindungi dari ruang tertanam dan sejenisnya, dan menghapus semuanya. Dalam kasus saya, file * .plist yang tidak valid adalah semua file antik 0-byte untuk hal-hal yang tidak dapat berjalan pada El Cap, jadi saya yakin saya tidak menghapus informasi aktual apa pun. YMMV !!
find . -size 42c -name "*plist" -delete
Ini menyapu semua file * .plist yang panjangnya 42 byte, ukuran plist yang kosong secara logis dalam format biner. Saya punya beberapa dari mereka yang berkeliaran dan mereka mungkin menyebabkan keluhan sharedfilelistd
.
killall sharedfilelistd
Itu menghentikan proses sharedfilelistd
berjalan di akun saya. Sistem memulai ulang instance baru secara otomatis. Saya tidak yakin ini diperlukan, tetapi tampaknya bijaksana karena saya baru saja menghapus banyak informasi dari subsistem preferensi yang terkait dengan cara lama melakukan apa yang sharedfilelistd
tampaknya dilakukan di El Cap.
CATATAN: 7 perintah itu adalah versi singkat dari apa yang saya lakukan yang masuk akal dan memiliki efek, tersebar selama 3 jam untuk mencari-cari dan menguji dan mencoba mencari info sharedfilelistd
tanpa hasil.
Perlu juga dicatat bahwa tidak ada yang sudo
terlibat di sini, karena saya berada di ~ / Library / Preferences / saya sendiri, memanipulasi ranah preferensi saya sendiri. Menu Item Terbaru dan karenanya pengaturannya adalah khusus untuk pengguna sehingga di mana pun pengaturan itu disimpan (tidak pernah berhasil ...) harus spesifik untuk pengguna juga, bukan sesuatu yang membutuhkan root untuk memperbaikinya. Ada respons sebelumnya yang mencakup penghapusan besar-besaran izin / ACL / flag, dijalankan dengan sudo, yang bahkan tidak bekerja untuk penulis, dan dapat menyebabkan kerusakan sistemik yang serius. Ini tidak seperti itu. Perhatikan juga bahwa itu tidak memerlukan logout, reboot, boot dalam Mode Pemulihan, atau melakukan hal lain yang mungkin mengganggu.