OS X Mavericks 10.9.0にアップグレードしてから、今の10.9.2まで「com.apple.IconServicesAgent」プロセスがよく暴走している!
例えば:
前の文章を見てね:
「com.apple.IconServicesAgent」の問題点 1
「com.apple.IconServicesAgent」の問題点 2
「com.apple.IconServicesAgent」の問題点 3
com.apple.IconServicesAgentがよく暴走している時、ユーティリティの「コンソール」を開いたら。以下のようなエラーがたくさん出ている。
一つエラーをクリックして内容をよく見てね。問題点は「Failed to write file」ファイルに書き込む時にエラーが発生したということだ。
2014/03/13 0:22:07.000 com.apple.IconServicesAgent[2318]: Failed to write file /var/folders/2p/r_n2nsjn7x7f35lnsvr62dt40000gn/T/com.apple.IconServices/BFB904D1A0180C3E28923631E3C5B534.iscachebmp.tmp to cache.
1 IconServices 0x0000000110576b85 ___ZN18IconImageGenerator4mainEv_block_invoke7 + 634
2 libdispatch.dylib 0x000000010f6442ad _dispatch_client_callout + 8
3 libdispatch.dylib 0x000000010f64aa30 _dispatch_barrier_sync_f_slow + 460
4 IconServices 0x00000001105765ba _ZN18IconImageGenerator4mainEv + 734
5 IconServices 0x0000000110577ea8 _ZN11WorkManager11processWorkEP4Work + 112
6 IconServices 0x0000000110577e1f ___ZN11WorkManager11enqueueWorkEP4WorkU13block_pointerFvS1_E_block_invoke_5 + 26
7 libdispatch.dylib 0x000000010f6471d7 _dispatch_call_block_and_release + 12
8 libdispatch.dylib 0x000000010f6442ad _dispatch_client_callout + 8
9 libdispatch.dylib 0x000000010f6487ff _dispatch_async_redirect_invoke + 154
10 libdispatch.dylib 0x000000010f6442ad _dispatch_client_callout + 8
11 libdispatch.dylib 0x000000010f64609e _dispatch_root_queue_drain + 326
12 libdispatch.dylib 0x000000010f647193 _dispatch_worker_thread2 + 40
13 libsystem_pthread.dylib 0x000000010f925ef8 _pthread_wqthread + 314
14 libsystem_pthread.dylib 0x000000010f928fb9 start_wqthread + 13
じゃ、ファイルに書き込めたらどう?「com.apple.IconServicesAgent」を強制終了せずに「新規フォルダ」を作成したら、問題を解決したみたい。
どうやってファイルに書き込めるの?実は簡単だけど。まず「移動 / フォルダへ移動」をクリックする。
「/var」を入力して「移動」をクリックしたら、隠しフォルダを表示できる。
「folders」というフォルダを見つけて開く。
ここはOS Xシステムが「TEMP」という一時フォルダとして使っているそうだ。一時フォルダの名前は「2h」とか「2p」とか使っている。
「2h」や「2p」を開く、そして文字化けのようなフォルダを開く。
問題点は「T」というフォルダにある!だから「T」を開く。
やっぱり!ここは「com.apple.IconServices」というフォルダがなかったせいで、ファイルを書き込めないから、「Failed to write file」というエラーが発生したわけだ。
実は「C」というフォルダの中に「com.apple.IconServices」というフォルダがあるけど。
「T」というフォルダを開く、右クリックして「新規フォルダ」をクリックする。
新しいフォルダを作成する。
新しいフォルダの名前は「com.apple.IconServices」だ。「com.apple.IconServicesAgent」を強制終了せずに新しい「com.apple.IconServices」を作成したら問題を解決できるみたい。
ところが、ある状態でOS Xシステムに「com.apple.IconServices」を削除された!だから、毎回毎回新しい「com.apple.IconServices」を作成するのは無理だ。
じゃ、ログインするやいなや、自動的に「com.apple.IconServices」を作成したらどう?
まず、「option」キーを押しながら「移動 / ライブラリ」をクリックする。
「Scripts」というフォルダを開く。(万が一無かったら、「Scripts」を作成する。)
「AppleScriptエディタ」で「IconServices.sh」というファイルを作成する。
「AppleScriptエディタ」は「ユーティリティ」にある。
「IconServices.sh」というプログラムの内容はとても簡単。
#!/bin/sh
mkdir ${TMPDIR}com.apple.IconServices
どうやって、ログインするやいなや、自動的に「IconServices.sh」を実行するの?実は「ライブラリ / LaunchAgents」というフォルダを使ったら、プログラムが自動的に実行できる。
一つ特別なフィイルを作らないといけない。
「IconServices.plist」(ファイルの名前は適当に決めてね)の内容は...
Label
local.launch-at-login.conf
ProgramArguments
sh
-c
~/Library/Scripts/IconServices.sh
RunAtLoad
「com.apple.IconServicesAgent」がよく暴走している問題は一応解決したけど、本番はOS X 10.9.3にアップグレードするよね。
もし万一まだ「com.apple.IconServicesAgent」が暴走している場合は、すぐログアウトして、ログインした方がいい。