Me encontré con esto hoy en un iMac de un mes. Lo único que no es novedoso es mi cuenta, que se ha replicado en 5 máquinas y 12 versiones principales de MacOS utilizando Migration Assistant cuando sea posible, dejándolo con un poco de ruina en ~ / Library / Preferences /. Desafortunadamente, en versiones recientes, Apple ha complicado complicar la limpieza de ese directorio de manera efectiva al eliminar los archivos porque cfprefsd
administra la información de preferencia real y necesita hablar con ella con la defaults
utilidad.
De todos modos, me gusta que cada vez que trato de cambiar la preferencia obtengo 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, ambos defaults domains
y algunas docenas de archivos en Preferencias me dijeron que la mayoría de las aplicaciones con un dominio predeterminado adecuado como com.example.appname también tenían un dominio predeterminado como com.example.appname.LSSharedFileList que contenía listas de archivos usados recientemente. Excepto que no se utilizaron archivos recientemente. Ninguno de los archivos * .LSSharedFileList.plist había cambiado desde mi migración desde mi vieja máquina Yosemite, y ninguno de los dos había com.apple.recentitems.plist. Así que limpié la casa ejecutando estos comandos dentro de ~ / Library / Preferences /:
defaults delete com.apple.recentitems
rm com.apple.recentitems.plist*
El defaults
comando le indica 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.lockflock de 0 bytes que el rm
comando elimina.
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 defaults
dominios con LSSharedFileList en sus nombres
find . -name "*.plist" -print0 |xargs -0 -L1 plutil -lint |grep -v ': OK$'|cut -d: -f1|sed 's/.*/"&"/' |xargs rm
Aún menos obvio, pero aparentemente crucial. Esta canalización encuentra todos los archivos * .plist en el directorio actual (que era ~ / Library / Preferences /,) verifica la validez de cada uno plutil -lint
, analiza los nombres de los archivos que no están "OK", los cita para protegerlos espacios incrustados y similares, y los elimina a todos. En mi caso, los archivos inválidos * .plist eran todos archivos antiguos de 0 bytes para cosas que no pueden ejecutarse 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 barrió cualquier archivo * .plist que tenía 42 bytes de longitud, el tamaño de una lista lógicamente vacía en formato binario. Tuve algunos de esos que estaban dando vueltas y podrían haber estado causando la queja sharedfilelistd
.
killall sharedfilelistd
Eso terminó la instancia de sharedfilelistd
ejecución bajo mi cuenta. El sistema reinició una nueva instancia automáticamente. No estoy seguro de que esto fuera necesario, pero parecía prudente ya que acababa de borrar una gran cantidad de información del subsistema de preferencias que estaba relacionado con la antigua forma de hacer lo que sharedfilelistd
aparentemente hace en El Cap.
NOTA: Esos 7 comandos son la versión resumida de lo que hice que tenía sentido y tuvo efectos, dispersos a lo largo de 3 horas de hurgar y probar e intentar encontrar información en sharedfilelistd
vano.
También vale la pena señalar que no hay nada sudo
involucrado aquí, porque estaba en mi propio ~ / Library / Preferences /, 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 guarde esa configuración (nunca funcionó ...) también debe ser específica del usuario, no algo que requiera que la raíz se arregle. Hay una respuesta previa que incluye un borrado masivo inexplicable de permiso / ACL / bandera, ejecutado con sudo, que ni siquiera funcionó para el autor, y puede causar daños sistémicos graves. Esto no es nada de eso. También tenga en cuenta que no requiere cerrar sesión, reiniciar, arrancar en modo de recuperación o hacer cualquier otra cosa que pueda ser perjudicial.