Je suis tombé dessus aujourd'hui sur un iMac âgé d'un mois. La seule chose qui n’est pas récente, c’est mon compte, qui a été répliqué sur 5 machines et 12 versions majeures de MacOS à l’aide de Migration Assistant, lorsque cela est possible, le laissant avec un peu de rigueur dans ~ / Bibliothèque / Préférences /. Malheureusement, dans les versions récentes, Apple a compliqué le nettoyage de ce répertoire en supprimant les fichiers, car il cfprefsd
gère les informations relatives aux préférences réelles et vous devez en discuter avec l’ defaults
utilitaire.
Quoi qu'il en soit, j'aime bien qu'à chaque fois que j'essayais de modifier les préférences, je recevais une séquence d'entrées de journal comme celle-ci:
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
En outre, les defaults domains
préférences et quelques dizaines de fichiers dans les préférences m'ont indiqué que la plupart des applications avec un domaine par défaut approprié, tel que com.example.appname, avaient également un domaine par défaut, tel que com.example.appname.LSSharedFileList, qui contenait des listes de fichiers récemment utilisés. Sauf qu'ils n'étaient pas du tout des fichiers récemment utilisés. Aucun des fichiers * .LSSharedFileList.plist n'avait changé depuis ma migration à partir de mon ancienne machine Yosemite, et com.apple.recentitems.plist non plus. J'ai donc nettoyé la maison en exécutant ces commandes dans ~ / Library / Preferences /:
defaults delete com.apple.recentitems
rm com.apple.recentitems.plist*
La defaults
commande demande cfprefsd
de supprimer tous les paramètres de ce domaine, ce qui laisse un fichier .plist logiquement vide de 42 octets et un fichier .plist.lockfile de 0 octets que la rm
commande supprime.
defaults find LSSharedFileList |grep 'keys in domain .*LSShared'|cut -d"'" -f2 |xargs -L1 defaults delete
rm *LSSharedFileList.plist*
Moins évident, mais essentiellement la même chose pour tous les defaults
domaines avec LSSharedFileList dans leurs noms
find . -name "*.plist" -print0 |xargs -0 -L1 plutil -lint |grep -v ': OK$'|cut -d: -f1|sed 's/.*/"&"/' |xargs rm
Encore moins évident, mais apparemment crucial. Ce pipeline trouve tous les fichiers * .plist dans le répertoire actuel (~ / Bibliothèque / Preferences /,), vérifie la validité de chacun d'eux plutil -lint
, analyse les noms de fichiers de ceux qui ne sont pas "OK", les met en garde pour les protéger espaces intégrés et similaires, et les supprime tous. Dans mon cas, les fichiers * .plist non valides étaient tous des fichiers anciens de 0 octet pour des choses qui ne peuvent pas fonctionner sur El Cap de toute façon, donc j'étais sûr de ne pas supprimer d'informations réelles. YMMV !!
find . -size 42c -name "*plist" -delete
Cela a balayé tous les fichiers * .plist de 42 octets de long, soit la taille d’un plist logiquement vide au format binaire. J'en ai quelques-uns qui traînent et ils pourraient avoir causé la plainte sharedfilelistd
.
killall sharedfilelistd
Cela a mis fin à l’ sharedfilelistd
exécution de mon compte. Le système a redémarré automatiquement une nouvelle instance. Je ne suis pas sûr que cela soit nécessaire, mais cela me semblait prudent puisque je venais de supprimer une série d'informations du sous-système de préférences qui était liée à l'ancienne façon de faire ce qui sharedfilelistd
semble être le cas à El Cap.
NOTE: Ces 7 commandes sont la version abrégée de ce que j'ai fait qui a du sens et des effets, éparpillés sur 3 heures de fouilles, de tests et d’essais de trouver des informations en sharedfilelistd
vain.
Il est également intéressant de noter qu'il n'y a aucune sudo
implication ici, car j'étais dans mon propre ~ / Bibliothèque / Preferences /, manipulant mon propre domaine de préférences. Le menu Eléments récents et par conséquent ses paramètres sont spécifiques à l'utilisateur. Par conséquent, chaque fois que ce paramètre est stocké (cela n'a jamais fonctionné ...), il doit également être spécifique à l'utilisateur, sans que quelque chose nécessite de la racine. Il y a une réponse antérieure qui inclut une autorisation massive inexpliquée, une liste de contrôle d'accès / un effacement de drapeau, exécutée avec sudo, qui n'a même pas fonctionné pour l'auteur et qui peut entraîner de graves problèmes systémiques. Ce n'est rien comme ça. Notez également qu'il n'est pas nécessaire de se déconnecter, de redémarrer, de démarrer en mode de récupération ou de faire autre chose qui pourrait perturber.