Da quando Mavericks, il com.apple.IconServicesAgent
va in giro approssimativamente una volta al giorno sulla mia macchina (un Retina MBP da 15in all'inizio del 2013), rimanendo bloccato in una sorta di ciclo while (1)
.
Questo fa sì che il laptop si riscaldi e diventi lento. Le icone nel Finder non si aggiornano / caricano più e il sistema operativo diventa gradualmente inutilizzabile. Allo stesso tempo, questo processo scrive megabyte del valore di ripetuti messaggi di log relativi agli errori che tentano di generare file di cache di icone, come il seguente:
5/20/14 10:32:28.002 AM com.apple.IconServicesAgent[232]: Failed to write file /var/folders/94/rfzxfhbn3hjb4p402lg_yjgw0000gn/T/com.apple.IconServices/0895B9DC9B6311D99F7C47ECE89C81D4.iscachebmp.tmp to cache.
1 IconServices 0x00007fff8efd1b85 ___ZN18IconImageGenerator4mainEv_block_invoke7 + 634
2 libdispatch.dylib 0x00007fff88f7e28d _dispatch_client_callout + 8
3 libdispatch.dylib 0x00007fff88f84a18 _dispatch_barrier_sync_f_slow + 460
4 IconServices 0x00007fff8efd15ba _ZN18IconImageGenerator4mainEv + 734
5 IconServices 0x00007fff8efd2ea8 _ZN11WorkManager11processWorkEP4Work + 112
6 IconServices 0x00007fff8efd2e1f ___ZN11WorkManager11enqueueWorkEP4WorkU13block_pointerFvS1_E_block_invoke_5 + 26
7 libdispatch.dylib 0x00007fff88f811bb _dispatch_call_block_and_release + 12
8 libdispatch.dylib 0x00007fff88f7e28d _dispatch_client_callout + 8
9 libdispatch.dylib 0x00007fff88f827e3 _dispatch_async_redirect_invoke + 154
10 libdispatch.dylib 0x00007fff88f7e28d _dispatch_client_callout + 8
11 libdispatch.dylib 0x00007fff88f80082 _dispatch_root_queue_drain + 326
12 libdispatch.dylib 0x00007fff88f81177 _dispatch_worker_thread2 + 40
13 libsystem_pthread.dylib 0x00007fff8480def8 _pthread_wqthread + 314
14 libsystem_pthread.dylib 0x00007fff84810fb9 start_wqthread + 13
Kieran Healy descrive questo problema sul suo blog [1] e propone una soluzione che funziona in modo affidabile per me (con piccoli adattamenti). L'esecuzione dei seguenti comandi consente a IconServicesAgent
di ripristinare:
mkdir -p ${TMPDIR}/com.apple.IconServices
chown -R 'whoami' ${TMPDIR}/com.apple.IconServices
Tuttavia, il problema rimane un grande fastidio perché questi comandi risolvono solo i sintomi in quel preciso momento; il problema persiste e si ripresenterà qualche tempo dopo. Sto cercando una soluzione che sia più intelligente di dover aspettare che il mio laptop diventi molto caldo e lento e poi emettere quei comandi.
Ho provato a scrivere un processo cron che esegue questi comandi ogni minuto ma non ha avuto molto successo perché la variabile di ambiente ${TMPDIR}
non era disponibile per gli script eseguiti da cron. In definitiva, sarebbe fantastico se ci fosse un modo per scoprire che cosa sta incasinando questa directory, causando il problema in primo luogo. Molte persone sembrano avere questo problema e non ci sono ancora risposte o soluzioni convincenti.
[1] link