2012年4月14日土曜日

Macbook-Proが電源アダプタ接続時のみスリープしない件(解決済み)

ちょっと前からMacbookを電源アダプタに接続している場合のみスリープしなくなっちゃいました。 不思議なのはバッテリー駆動時ではスリープできるのです。 Macbookは基本スリープ運用しているので、電源アダプタ接続時のみとはいえスリープ出来ないのは結構いたいです。
スリープ出来ない時のMacbook-Proの様子
スリープ出来ない事象は以下のような感じでした。
  • 電源アダプタ接続時、Macbookのディスプレイを閉じてもスリープランプが点滅しない。
  • ディスプレイを開けると一瞬画面が表示された後に画面がブラックアウトする。
  • 画面がブラックアウトしても、一度バッテリー駆動にすると画面が映る。
  • 画面左上のアップルメニューからスリープしてもダメ。
  • 自動スリープもダメ。
  • バッテリー駆動時はスリープが可能。
  • OSはMac OS X バージョン 10.7.3
色々ネットで調べて、常駐アプリだとか、共有設定だとかスクリーンセーバーだとかPRAMクリアだとか試しましたが、 事象は改善せずです。
解決へ向けて
スリープ出来ない原因は多々あると思われますが、もしpmset -gコマンド実行結果が以下(赤字の部分)のようなら 私と同じ原因の可能性があり、解決できるかもしれません。
ターミナルを起動して以下コマンドを実行します。
MacBook-Pro:~ naoyuki$ pmset -g
Active Profiles:
Battery Power           -1
AC Power                -1*
Currently in use:
 womp           0
 halfdim        1
 sms            1
 panicrestart   15
 gpuswitch      2
 hibernatefile  /var/vm/sleepimage networkoversleep       0
 disksleep      10
 sleep          0 (imposed by 16) 
 hibernatemode  3
 ttyskeepawake  1
 displaysleep   15
 acwake         0
 lidwake        1
上記結果の「sleep 0 (imposed by 16)」のようにsleepの値が0になっていてその後ろに括弧でメッセージが 書かれています。
 sleep          0 (imposed by 16) 
の16という数字はPIDらしいです。このPIDのプロセスが原因でスリープ出来ないことを意味しているっぽい。 私の環境ではcupsのデーモンプロセスがこのPIDに該当しました。プロセスIDはターミナル上で ps -ef を実行するか アクティビティモニタで確認出来ます。
ここで、いきなりPID 16のプロセスをKILLするのは怖いのでCUPSのデーモンを調べてみました。 どうもCUPSの設定はWEBインタフェースで提供されているらしく、ブラウザから「http://localhost:631」とすれば 管理画面にアクセス出来ます。
ジョブが溜まっていたようでこのプリントジョブを削除してから再度 pmset -g コマンドを実行すると、
sleep 180
のようになり(私はこの時、電源接続時スリープ設定を3時間に設定)、imposedのメッセージが削除されていました。この状態でスリープを試してみたら見事 スリープが可能になっていました。いやー良かった良かった。終わり。

0 件のコメント :

コメントを投稿