Console.appが各ファイルの最後の30分しか表示しないところまで、システムログファイルがいっぱいになっています。何かがサンドボックスから脱出しようとしているように見えますが、正確にはわかりません...次のようなメッセージが何度も繰り返されています。
Feb 3 00:29:57 Brians-mini sandboxd[16]: syslogd(15) deny file-read-data /private/var/log/asl/StoreData
Feb 3 00:29:57 Brians-mini sandboxd[16]: syslogd(15) deny mach-task-name
Feb 3 00:29:57 Brians-mini sandboxd[16]: syslogd(15) deny file-read-data /private/var/log/asl/StoreData
Feb 3 00:29:57 Brians-mini sandboxd[16]: syslogd(15) deny mach-task-name
Feb 3 00:29:59: --- last message repeated 1 time ---
Feb 3 00:29:57 Brians-mini sandboxd[16]: *** process 16 exceeded 500 log message per second limit - remaining messages this second discarded ***
Feb 3 00:29:57 Brians-mini sandboxd[16]: syslogd(15) deny mach-task-name
Feb 3 00:30:00: --- last message repeated 499 times ---
Feb 3 00:29:58 Brians-mini sandboxd[16]: *** process 16 exceeded 500 log message per second limit - remaining messages this second discarded ***
Feb 3 00:29:58 Brians-mini sandboxd[16]: syslogd(15) deny mach-task-name
編集して追加:
アクティビティモニターによると、sandboxdは60%のCPUを使用しており、syslogdは120%を使用しています。さて、それはPERプロセッサだと思います(私はコア2デュオを使用しています)が、それでもこれら2つのプロセスのCPUは非常に多くなっています...
編集:リクエストに応じてvar/log/asl:
drwxr-xr-x 25 root wheel 850 Jan 6 06:41 ./
drwxr-xr-x 47 root wheel 1598 Feb 4 15:16 ../
-rw-r----- 1 root admin 11414 Jan 4 11:49 2010.01.04.U0.G80.asl
-rw------- 1 root wheel 874 Jan 4 09:41 2010.01.04.U0.asl
-rw------- 1 acordex wheel 43862 Jan 4 17:53 2010.01.04.U501.asl
-rw-r--r-- 1 root wheel 44614 Jan 4 23:42 2010.01.04.asl
-rw-r----- 1 root admin 10241494 Jan 5 16:53 2010.01.05.U0.G80.asl
-rw------- 1 acordex wheel 669585 Jan 5 18:11 2010.01.05.U501.asl
-rw-r--r-- 1 root wheel 772889 Jan 5 23:42 2010.01.05.asl
-rw-r----- 1 root admin 9731 Jan 6 18:54 2010.01.06.U0.G80.asl
-rw------- 1 acordex wheel 404532 Jan 6 18:50 2010.01.06.U501.asl
-rw-r--r-- 1 root wheel 838013 Jan 6 18:53 2010.01.06.asl
-rw-r----- 1 root admin 52896 Sep 24 18:20 BB.2010.09.30.U0.G80.asl
-rw-r--r-- 1 root wheel 50908 Sep 29 10:30 BB.2010.09.30.asl
-rw-r----- 1 root admin 58875 Oct 30 11:18 BB.2010.10.31.U0.G80.asl
-rw-r--r-- 1 root wheel 46188 Oct 30 17:41 BB.2010.10.31.asl
-rw-r----- 1 root admin 10322 Nov 5 18:21 BB.2010.11.29.U0.G80.asl
-rw-r--r-- 1 root wheel 2159 Nov 4 17:21 BB.2010.11.29.asl
-rw-r----- 1 root admin 6586 Nov 9 14:06 BB.2010.11.30.U0.G80.asl
-rw-r--r-- 1 root wheel 23147 Nov 25 16:36 BB.2010.11.30.asl
-rw-r----- 1 root admin 21686 Dec 16 19:06 BB.2010.12.31.U0.G80.asl
-rw-r--r-- 1 root wheel 36951 Dec 23 18:32 BB.2010.12.31.asl
-rw-r--r-- 1 root wheel 2584 Jan 6 16:49 BB.2011.01.31.asl
-rw-r--r-- 1 root wheel 12 Jan 6 18:54 StoreData
-rw-r--r-- 1 root wheel 8 Jan 6 16:59 SweepStore
syslogd
自体が問題を引き起こしているように見えます。データファイルからサンドボックス化されているため、データファイルにアクセスしようとすると、サンドボックスエラーが生成され、syslogd
に渡されます。これにより、ファイルを再度取得しようとします...これはsyslogd
とsandboxd
が実行できる速度で繰り返されます。
/System/Library/LaunchDaemons/com.Apple.syslogd.plist
(syslogdの起動方法を制御するlaunchdアイテム)の内容を確認します。次のようなセクションが必要です。
<key>ProgramArguments</key>
<array>
<!--
Un-comment the following lines to run syslogd with a sandbox profile.
Sandbox profiles restrict processes from performing unauthorized
operations; so it may be necessary to update the profile
(/usr/share/sandbox/syslogd.sb) if any changes are made to the syslog
configuration (/etc/syslog.conf).
-->
<!--
<string>/usr/bin/sandbox-exec</string>
<string>-f</string>
<string>/usr/share/sandbox/syslogd.sb</string>
-->
<string>/usr/sbin/syslogd</string>
</array>
上記の例(私のMacから取得)では、syslogdのサンドボックスラッパーがコメントアウトされていることに注意してください。 Macでも同じですか?そうでない場合は、コメントマーカーを再度追加し、syslogd
を再起動します(これはlaunchctl
で実行できますが、マシンを再起動するだけです)。
別の注意:サンドボックスプロファイル/usr/share/sandbox/syslogd.sb
を調べたところ、(私の専門家の目には)mach-task-name
と/private/var/log/asl/StoreData
へのアクセスを拒否しているように見えます-どうやらAppleは、syslogd
が実際に必要とするものと一致するようにプロファイルをデバッグ(/更新)していません...
さて、物事を埋めるプロセスはサンドボックス化されています(プロセス16)。
なぜこれほど多くのログが記録されるのかについては、問題を理解するために、より多くのメッセージを確認する必要があります。 (この小さなスニペットからは、一部のプログラムが不正な処理を実行しようとしているように見えます。指定されたファイルにアクセスしますが、ここにはあまり情報がありません。)
2つの異なる考え:
これらのエラーの原因となっているsandboxdによって生成された特定のプロセスがあるかどうかを特定してみてください。アクティビティモニターアプリを実行し、ウィンドウ上部の選択リストから[すべてのプロセスを階層的に]を選択します。リストでsandboxdを見つけて、その下に子プロセスがあるかどうかを確認します。子プロセスはインデントされます。
ログメッセージには/ private/var/log/aslが記載されています。 aslmanager
とasl.conf
(aslmanagerの設定ファイル)のマニュアルページを見てください。設定ファイルにはログレベルの設定があります。おそらく、これはより詳細なレベルにぶつかったのでしょう。
これは、セーフモードで起動したときに発生しますか?
別のユーザーで発生しますか?
Console.logにリードはありますか?
ls -la /private/var/log/asl/
の結果を貼り付けることができますか?おそらく何かがそこにありません。
/System/Library/LaunchDaemons/com.Apple.aslmanager.plist
または/private/etc/asl.conf
を変更しましたか
syslog | grep -v sandboxd | grep -v "last message repeated" | tail -n 100
を使用すると、syslogで10.6の7日前にさかのぼるエントリを確認できるはずです。これにより、ASLのサンドボックス化されていない最新の100エントリが表示されます。おそらくそれはあなたに他に何が起こっているかについての手がかりを与えるでしょう。
ASLがすぐに最大サイズに達するほど急速にいっぱいになる場合は、/private/etc/asl.conf
のmax_store_sizeを使用して、ASLデータベースが一時的に最大サイズに拡大できるサイズを増やすことができます。 マニュアルページ の詳細=。それを実行してから上記のsyslogコマンドを実行すると、有用なログ情報が得られる場合があります。