Me encontré con esto hoy en un iMac de un mes. Lo único que no es nuevo es mi cuenta, que se ha replicado en 5 máquinas y 12 versiones principales de MacOS usando el Asistente de Migración cuando es posible, dejándola con un poco de margen en ~ / Library / Preferences /. Desafortunadamente, en las versiones recientes, Apple ha complicado la limpieza efectiva de ese directorio mediante la eliminación de archivos, ya que cfprefsd
administra la información de preferencia real y necesita hablarle bien con la utilidad defaults
.
De todos modos, me gusta que cada vez que trato de cambiar la preferencia tengo una secuencia de entradas de registro como esta:
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
Además, tanto defaults domains
como unas pocas docenas de archivos en Preferencias me dijeron que la mayoría de las aplicaciones con un dominio predeterminado como com.example.appname también tenían una configuración predeterminada dominio como com.example.appname.LSSharedFileList que contenía listas de archivos utilizados recientemente. Excepto que no se utilizaron archivos recientemente. Ninguno de los archivos * .LSSharedFileList.plist había cambiado desde mi migración desde mi antigua máquina de Yosemite, y ninguno tenía com.apple.recentitems.plist. Así que limpié la casa ejecutando estos comandos en ~ / Library / Preferences /:
defaults delete com.apple.recentitems
rm com.apple.recentitems.plist*
El comando defaults
le dice a cfprefsd
que elimine todas las configuraciones en ese dominio, lo que deja un archivo .plist lógicamente vacío de 42 bytes y un archivo .plist.lockfile de 0 bytes que elimina el comando rm
.
defaults find LSSharedFileList |grep 'keys in domain .*LSShared'|cut -d"'" -f2 |xargs -L1 defaults delete
rm *LSSharedFileList.plist*
Menos obvio, pero esencialmente lo mismo para todos los dominios defaults
con LSSharedFileList en sus nombres
find . -name "*.plist" -print0 |xargs -0 -L1 plutil -lint |grep -v ': OK$'|cut -d: -f1|sed 's/.*/"&"/' |xargs rm
Incluso menos obvio, pero aparentemente crucial. Esta tubería encuentra todos los archivos * .plist en el directorio actual (que era ~ / Library / Preferences /,) comprueba la validez de cada uno con plutil -lint
, analiza los nombres de los archivos que no están "OK", los encabeza para proteger de espacios incrustados y similares, y los elimina a todos. En mi caso, los archivos * .plist no válidos eran todos archivos antiguos de 0 bytes para cosas que no se pueden ejecutar en El Cap de todos modos, así que estaba seguro de que no estaba eliminando ninguna información real. YMMV!!
find . -size 42c -name "*plist" -delete
Esto eliminó todos los archivos * .plist que tenían una longitud de 42 bytes, el tamaño de una lista vacía de forma lógica en formato binario. Tuve algunos de los que andaban por ahí y podrían haber estado causando la queja de sharedfilelistd
.
killall sharedfilelistd
Eso terminó la instancia de sharedfilelistd
corriendo bajo mi cuenta. El sistema reinició una nueva instancia automáticamente. No estoy seguro de que esto fuera necesario, pero me pareció prudente, ya que acababa de eliminar un montón de información del subsistema de preferencias que estaba relacionado con la antigua forma de hacer lo que aparentemente sharedfilelistd
hace en El Cap.
NOTA: Esos 7 comandos son la versión abreviada de lo que hice que tuvo sentido y tuvo efectos, distribuidos en 3 horas de hurgando y probando y tratando de encontrar información sobre sharedfilelistd
en vano .
También vale la pena señalar que no hay sudo
involucrado aquí, porque estaba en mi propia ~ / Biblioteca / Preferencias /, manipulando mi propio reino de preferencias. El menú Elementos recientes y, por lo tanto, sus configuraciones son específicas del usuario, por lo que donde sea que se almacene esa configuración (nunca se resolvió eso ...) también tiene que ser específica para el usuario, no algo que requiera que la raíz se arregle. Hay una respuesta previa que incluye un permiso masivo / ACL / borrado de banderas inexplicables, ejecutado con sudo, que ni siquiera funcionó para el autor, y puede causar un daño sistémico grave. Esto no es nada de eso. También tenga en cuenta que no es necesario cerrar la sesión, reiniciar, arrancar en modo de recuperación o hacer cualquier otra cosa que pueda ser perjudicial.