DiagnosticReportsの出力割合を確認してみる
system.logの中身をみてみると,ReportCrashのログが沢山出ている.5分に1回だ.ちなみに全体のどれくらいの割合で出ているのかをみる為にカウントしてみた.
sh-3.2# pwd /var/log sh-3.2# view system.log sh-3.2# cat system.log|wc -l 3621 sh-3.2# grep DiagnosticReports system.log |wc -l 2286 sh-3.2#
ほとんどがReportCrashのログだった.実際の中身はこんな感じ.
sh-3.2# tail system.log |grep Diagnostic Feb 14 22:20:06 ujp ReportCrash[31399]: Saved crash report for running job[31398] version ??? (???) to /Library/Logs/DiagnosticReports/running job_2014-02-14-222006_juno.crash Feb 14 22:20:06 ujp ReportCrash[31399]: Saved crash report for running job[31400] version ??? (???) to /Library/Logs/DiagnosticReports/running job_2014-02-14-222006-1_juno.crash Feb 14 22:20:06 ujp ReportCrash[31399]: Saved crash report for running job[31401] version ??? (???) to /Library/Logs/DiagnosticReports/running job_2014-02-14-222006-2_juno.crash Feb 14 22:20:07 ujp ReportCrash[31399]: Saved crash report for running job[31402] version ??? (???) to sh-3.2#
専用のログディレクトリに何か溜まってそうだ.
/Library/Logs/DiagnosticReportsをみてみる.
DiagnosticReportsの入っているディレクトリに移動してファイルを確認する.
sh-3.2# cd /Library/Logs/DiagnosticReports sh-3.2# ls -lat |head total 256 drwxrwx--- 23 root admin 782 Feb 14 22:50 . -rw-rw----@ 1 root admin 3707 Feb 14 22:50 running job_2014-02-14-225007-1_juno.crash -rw-rw----@ 1 root admin 3707 Feb 14 22:50 running job_2014-02-14-225007-2_juno.crash -rw-rw----@ 1 root admin 3707 Feb 14 22:50 running job_2014-02-14-225007-3_juno.crash -rw-rw----@ 1 root admin 3707 Feb 14 22:50 running job_2014-02-14-225007_juno.crash -rw-rw----@ 1 root admin 3707 Feb 14 22:50 running job_2014-02-14-225006-1_juno.crash -rw-rw----@ 1 root admin 3707 Feb 14 22:50 running job_2014-02-14-225006-2_juno.crash -rw-rw----@ 1 root admin 3707 Feb 14 22:50 running job_2014-02-14-225006-3_juno.crash -rw-rw----@ 1 root admin 3707 Feb 14 22:50 running job_2014-02-14-225006-4_juno.crash sh-3.2#
特殊ファイルがある...junoというのはホスト名だけれど,jobという謎のアプリのクラッシュダンプらしい.ファイル名だけだと判らないので中身をみてみる.
クラッシュダンプファイルの中身を確認
保存されているクラッシュダンプファイルを確認する.
sh-3.2# head running\ job_2014-02-14-225506-1_juno.crash Process: running job [32685] Path: /usr/libexec/oah/translate Identifier: running job Version: ??? (???) Code Type: PPC (Translated) Parent Process: running job [32648]
Date/Time: 2014-02-14 22:55:06.269 +0900 OS Version: Mac OS X Server 10.6.8 (10K549) Report Version: 6 sh-3.2#
jobというのは/usr/libexec/oah/translateの事らしいけれど,PPCと書いてあって,PowerPC時代のアプリをIntel Macで動かす為の技術Rosettaのよう.
Rosettaをオフにしてみる
Rosettaが必要になるようなPowerPCのアプリを使っている覚えは無いので,Rosettaをオフにしてみる.
sh-3.2# /usr/sbin/sysctl -w kern.exec.archhandler.powerpc=/usr/libexec/oah/RosettaNonGrata kern.exec.archhandler.powerpc: /usr/libexec/oah/translate -> /usr/libexec/oah/RosettaNonGrata sh-3.2#
PowerPCアプリが判明
継続してsystem.logをみていると,次のようなエラーが...
Feb 14 23:15:11 ujp rateup[33731]: Launch of "/usr/local/mrtg-2/bin/rateup" failed: Rosetta is not installed. Feb 14 23:15:11 ujp rateup[33732]: Launch of "/usr/local/mrtg-2/bin/rateup" failed: Rosetta is not installed. Feb 14 23:15:11 ujp rateup[33733]: Launch of "/usr/local/mrtg-2/bin/rateup" failed: Rosetta is not installed. Feb 14 23:15:11 ujp rateup[33734]: Launch of "/usr/local/mrtg-2/bin/rateup" failed: Rosetta is not installed. Feb 14 23:15:11 ujp rateup[33735]: Launch of "/usr/local/mrtg-2/bin/rateup" failed: Rosetta is not installed. Feb 14 23:15:11 ujp rateup[33736]: Launch of "/usr/local/mrtg-2/bin/rateup" failed: Rosetta is not installed. Feb 14 23:15:11 ujp rateup[33737]: Launch of "/usr/local/mrtg-2/bin/rateup" failed: Rosetta is not installed. Feb 14 23:15:11 ujp rateup[33738]: Launch of "/usr/local/mrtg-2/bin/rateup" failed: Rosetta is not installed. Feb 14 23:15:11 ujp rateup[33739]: Launch of "/usr/local/mrtg-2/bin/rateup" failed: Rosetta is not installed. Feb 14 23:15:11 ujp rateup[33740]: Launch of "/usr/local/mrtg-2/bin/rateup" failed: Rosetta is not installed.
MRTGがエラーになっている.それで5分に1回でてたのか. Rosettaがインストールされてない状態になっているので,ateupアプリが動作しないという意味.
プログラムがPowerPC用か確認してみる
sh-3.2# ls -la /usr/local/mrtg-2/bin/rateup -rwxr-xr-x 1 root wheel 83460 Apr 10 2007 /usr/local/mrtg-2/bin/rateup sh-3.2# sh-3.2# file /usr/local/mrtg-2/bin/rateup /usr/local/mrtg-2/bin/rateup: Mach-O executable ppc sh-3.2#
以前,コンパイルした時にはPowerPCマシンだったけれど,現在はIntelマシンで動作させているが,バイナリをトランスレートするRosettaで動かしていたからかな?それがクラッシュしているという結末になった.
Rosettaをオンにする
とりあえずMRTGが動かないと問題あるので,Rosettaを再度オンにしてPowerPCモジュールのMRTGが動く様に戻す.
sh-3.2# /usr/sbin/sysctl -w kern.exec.archhandler.powerpc=/usr/libexec/oah/translate kern.exec.archhandler.powerpc: /usr/libexec/oah/RosettaNonGrata -> /usr/libexec/oah/translate sh-3.2#
あとはsystem.logでこれまで通りエラーがでていれば元に戻った事が確認出来る.