今回はpmsetを使用してmacbookの効率的な
電源管理をする方法について解説します
この記事を読むとわかること・・・
- pmsetコマンドの使い方
- cronと組み合わせた指定時間にpmsetコマンドを実行する方法
1. pmsetとは
pmsetをわかりやすい言葉で一言で説明すると
macの電力消費を抑えるためのいろんな設定をすることができるコマンドのことです
pmsetを使用することでバッテリーの持ち時間を少しでも伸ばすことができます
2. pmsetの使用例
pmsetの使用例は主に以下のようなものがあります
- ディスプレイのスリープタイミングの設定
- ディスクのスリープ設定
- システムのスリープ設定
- 起動・シャットダウンのスケジュール設定
- UPSとの連携:無停電電源装置(UPS)のバッテリー残量と連動したシャットダウンを設定
- バッテリーの状態のモニタリング:バッテリーに問題があるかどうかを確認できる
ディスプレイ、ディスク、システムのスリープについて簡単に補足をしておきます
- ディスプレイのスリープ: モニター画面だけがオフになる(電力削減量: 小)
- ディスクのスリープ: ハードドライブまたはSSDがスリープとなる(電力削減量: 中)
- システムのスリープ: システム全体がスリープ(ディスプレイ、ディスク、CPU)となる(電力削減量: 大)
3. 『pmset -g』 コマンドで確認できる項目一覧
pmsetの具体的な使い方を説明する前に
pmset -gコマンドについて説明しておきます
pmset -gコマンドの実行結果はこんな感じです
# ターミナル
pmset -g
# 実行結果
System-wide power settings:
Currently in use:
lidwake 1
lowpowermode 1
standbydelayhigh 86400
standbydelaylow 0
standby 1
proximitywake 1
ttyskeepawake 1
hibernatemode 3
powernap 0
gpuswitch 2
hibernatefile /var/vm/sleepimage
highstandbythreshold 50
displaysleep 0 (display sleep prevented by Safari)
womp 0
networkoversleep 0
sleep 0 (sleep prevented by bluetoothd, coreaudiod, runningboardd, runningboardd, runningboardd, sharingd)
acwake 0
halfdim 1
tcpkeepalive 1
disksleep 10
各項目について説明します
これから説明する各項目の右の()内には出力される結果を示しています
lidwake(0/1)
ノートパソコンの蓋を開けたときにシステムが覚醒の有効/無効
数値の意味・・・
- 1: 蓋を開けると覚醒
- 0: 蓋を開けても覚醒しない
lowpowermode(0/1)
低電力モードの有効/無効
数値の意味・・・
- 1: 有効
- 0: 無効
standbydelayhigh (数値)
バッテリーが特定のレベル以上のときにスタンバイモードに入るまでの遅延時間(秒)
数値の意味・・・
- 0: すぐにスタンバイモードに入る
- 0以外: スタンバイモードに入るまでの秒数
パソコンの状態は主に3つの状態に分けられます
- 稼働状態:完全にオンでアプリが実行できる状態(電力消費:大)
- 休眠状態:システムの状態をメモリに保存してハードウェアはほぼオフの状態(電力消費:中)
- スタンバイモード:システム状態をSSDに保存してメモリもオフの状態(電力消費:小)
standbydelaylow (数値)
バッテリーが低いときにスタンバイモードに入るまでの遅延時間(秒)
数値の意味・・・
- 0: 直ちに(0秒後に)スタンバイ
- 0以外:スタンバイモードになるまでの秒数
standby (1/0)
スタンバイモードの有効/無効
数値の意味・・・
- 1: 有効
- 0: 無効
proximitywake (1/0)
近接センサーによる覚醒の有効/無効
数値の意味・・・
- 1: 有効
- 0: 無効
ttyskeepawake (1/0)
ターミナルアクティビティによる覚醒の有効/無効
数値の意味・・・
- 1: 有効
- 0: 無効
hibernatemode (数値)
休止状態のモード(0, 3, 25など)
数値の意味・・・
0:メモリに内容を保持しながら眠る(再開:早)
3:メモリの内容をハードドライブに保存し、完全に電力オフ(再開:遅)
25:新しいMacに特有のモードで安全かつ比較的早い再開が可能(再開:早)
powernap (1/0)
Power Nap機能の有効/無効
数値の意味・・・
- 1: 有効
- 0: 無効
gpuswitch (数値)
GPU(グラフィックスプロセッシングユニット)の切り替えモード
数値の意味・・・
- 0: 統合GPUを強制的に使用
- 1: 外部GPUを強制的に使用
- 2: OSによって自動でGPUを切り替える
hibernatefile (パス)
休止状態のイメージファイルへのパス
- 例: /var/vm/sleepimage
休止状態では現在のシステム状態をハードドライブ上に保存します
このときの保存先がhibernatefileで
休止状態から復帰する際にこのファイルから情報を読み取ります
パスはこのファイルの格納場所を指すもので
通常はシステムが管理する特定のディレクトリにあります
highstandbythreshold (数値)
高いスタンバイ遅延が適用されるバッテリーのしきい値(パーセンテージ)
数値の意味・・・
- 例 50: 50%以上の時に適用
displaysleep (数値)
ディスプレイがスリープするまでの時間(分)
数値の意味・・・
- 0: スリープしない
- 0以外:スリープまでの時間(分)
womp (1/0)
イーサネットWakeupの有効/無効
数値の意味・・・
- 1: 有効
- 0: 無効
networkoversleep (1/0)
スリープ中のネットワークアクセスの有効/無効
数値の意味・・・
- 1: 有効
- 0: 無効
sleep (数値)
システムがスリープするまでの時間(分)、およびスリープの防止要因
数値の意味・・・
- 0: スリープしない
- 0以外: スリープまでの時間(分)
acwake (1/0)
AC電源接続時の覚醒の有効/無効
数値の意味・・・
- 1: 有効
- 0: 無効
halfdim (1/0)
バッテリーが低いときのディスプレイの明るさを半減するかしないかの有効/無効
数値の意味・・・
- 1: 有効
- 0: 無効
tcpkeepalive (1/0)
スリープ状態のときのTCP接続の保持の有効/無効
数値の意味・・・
- 1: 有効
- 0: 無効
disksleep (数値)
ディスクがスリープするまでの時間(分)
数値の意味・・・
- 0: スリープしない
- 0以外: スリープするまで時間(分)
4. pmsetの使用例(公式説明文を要約)
pmsetの具体的な使い方を説明します
説明は(pmset公式)の具体例を元に説明します
ディスプレイのスリープタイマーを設定
バッテリー使用時にディスプレイを5分後にスリープさせる
pmset -b displaysleep 5
全ての電源ソースに対して複数の設定を適用
ディスプレイ、ディスクスリープを10分、システムスリープを30分に設定
WakeOnMagicPacketを有効にする
pmset -a displaysleep 10 disksleep 10 sleep 30 womp 1
UPSの設定(非常停止)
UPSバッテリーが特定のレベル以下になった場合に非常シャットダウン
# 40%以下で停止
pmset -u haltlevel 40
# 25%以下または30分以下で停止
pmset -u haltlevel 25 haltremain 30
# UPSバッテリー使用後2分で停止
pmset -u haltafter 2
スケジュール設定
特定の日時にシステムを覚醒させる、または毎日特定の時刻にシャットダウンさせる
# 指定日時に覚醒
pmset schedule wake "07/04/16 20:00:00"
# 毎週火~土11時にシャットダウン
pmset repeat shutdown TWRFS 11:00:00
# 週ごとの覚醒とスリープ
pmset repeat wakeorpoweron T 12:00:00 sleep MTWRFSU 20:00:00
各曜日はアルファベット一文字で表現できます
- 日曜日: S
- 月曜日: M
- 火曜日: T
- 水曜日: W
- 木曜日: T
- 金曜日: F
- 土曜日: S
スケジュールのキャンセル
予定された全てのスリープ、シャットダウン、覚醒イベントをキャンセル
pmset repeat cancel
電源状態の表示
システムの電源管理設定やバッテリー状態を表示
# 設定表示
pmset -g
# バッテリー状態表示
pmset -g batt
バッテリー問題の診断
バッテリー残量が突然大きく減少した際の診断
pmset -g pslog
5. cronと組み合わせた使用例
pmsetとcronを組み合わせると、特定の日時にpmsetコマンドを実行することができます
具体的にはパソコンのスリープを設定した時刻に実行することができます
cronについては別の記事で解説しているので
参考にしてみてください
使用例を説明する前に
cronの設定画面の開き方を簡単に説明しておきます
- ターミナルを開く
- ターミナル上で”crontab -e”を入力(パスはどこでもOK)
- “i”でINSERTモードに入る(文字入力が可能となる)
- cronの設定を書く
- EscボタンでINSERTモードを抜ける
- “:wp”(保存して閉じる)と入力してcronの設定画面を閉じる
- ターミナル画面に戻る
それでは使用例を説明します
毎日定時にシステムをスリープさせる
例:毎日夜11時にシステムをスリープ状態にする
# cronの設定
0 23 * * * pmset sleepnow
週末だけスリープ設定を変更する
例:週末だけディスプレイのスリープを長めに設定する
0 18 * * 5 pmset -a displaysleep 30
0 18 * * 0 pmset -a displaysleep 10
pmsetとcronを組み合わせることで
Macのエネルギー管理を日時指定で自動化することができます
少しでも省電力設定にして長く大切にパソコンを使用できるように設定してみましょう!