現在 (10.8.2 をインストールしてから) MacOSX Mountain Lion で実行されるいくつかのプログラムが、不要な電源管理アサーションを設定する原因となっています。このようなアサーションをクリアする方法を探しています。
1 つの例を次に示します。これらのプログラムの 1 つ以上により、次の電源管理アサーションが「powerd」内に設定されます。以下の「powerd」行に注意してください...
% pmset -g assertions
10/7/12 11:51:47 AM EDT
Assertion status system-wide:
PreventUserIdleDisplaySleep 1
CPUBoundAssertion 0
PreventSystemSleep 0
PreventUserIdleSystemSleep 0
ExternalMedia 0
UserIsActive 0
ApplePushServiceTask 0
BackgroundTask 0
Listed by owning process:
pid 18(powerd): [0x00000005000001d7] 11:24:18 PreventUserIdleDisplaySleep named: "com.apple.powermanagement.delayDisplayOff"
... etc. ...
これらのプログラムは終了し、この電源管理アサーションを「powerd」内に残して、永久にアクティブなままにします。これにより、「ディスプレイ スリープ」とスクリーン セーバーが呼び出されなくなります。
この場合、私が知っている唯一のオプション (再起動を除く) は、「powerd」プロセスで「kill -HUP」を実行することです。これにより、そのデーモンは誤ったアサーションなしで終了して再起動します。
そのデーモンを強制的に再起動せずに、「powerd」内の「PreventUserIdleDisplaySleep」アサーションをクリアする方法を 10.8.2 で知っている人はいますか? 必要に応じて、喜んで Cocoa、Carbon、または AppleScript プログラムを介してこれを行います。
IOPMLibについては知っていますが、そのライブラリ内のルーチンは、同じプロセス内で作成された電力アサーションのみをクリアできるようです。外部の既に実行中の「powerd」プロセスに、それが管理する「PreventUserIdleDisplaySleep」アサーションをクリアするように指示する方法が必要です。実行中の「powerd」インスタンス内で電源管理アサーションを外部から設定およびクリアするための API を知っている人はいますか? おそらく何らかの通知を介して... ???