pmsetコマンドの基礎から応用まで世界一やさしく解説

今回はpmsetを使用してmacbookの効率的な

電源管理をする方法について解説します

おへんじ
自動的にスリープさせたりシャットダウンしたりできるよ

この記事を読むとわかること・・・

  • pmsetコマンドの使い方
  • cronと組み合わせた指定時間にpmsetコマンドを実行する方法
おへんじ
使用例はpmsetの公式文を元に説明するよ

1. pmsetとは

pmsetをわかりやすい言葉で一言で説明すると

macの電力消費を抑えるためのいろんな設定をすることができるコマンドのことです

pmsetを使用することでバッテリーの持ち時間を少しでも伸ばすことができます

pmset・・・Macのターミナル上で動作するコマンドラインユーティリティ
おへんじ
コマンドラインユーティリティはpmsetの他にlsやpwdとかがあるよー

2. pmsetの使用例

pmsetの使用例は主に以下のようなものがあります

  • ディスプレイのスリープタイミングの設定
  • ディスクのスリープ設定
  • システムのスリープ設定
  • 起動・シャットダウンのスケジュール設定
  • UPSとの連携:無停電電源装置(UPS)のバッテリー残量と連動したシャットダウンを設定
  • バッテリーの状態のモニタリング:バッテリーに問題があるかどうかを確認できる

ディスプレイ、ディスク、システムのスリープについて簡単に補足をしておきます

  • ディスプレイのスリープ: モニター画面だけがオフになる(電力削減量: 小)
  • ディスクのスリープ: ハードドライブまたはSSDがスリープとなる(電力削減量: 中)
  • システムのスリープ: システム全体がスリープ(ディスプレイ、ディスク、CPU)となる(電力削減量: 大)

3. 『pmset -g』 コマンドで確認できる項目一覧

pmsetの具体的な使い方を説明する前に

pmset -gコマンドについて説明しておきます

おへんじ
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: 無効
Power Nap:Macが休眠中でもメールの同期やバックアップなど一部のタスクを実行する機能

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: 無効
イーサネットWakeup・・・ネットワーク経由でコンピュータを起動する機能

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: 無効
TCP(Transmission Control Protocol)接続・・・インターネット上でデータを送受信するためのプロトコル

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・・・UNIX系システムで指定した時間にプログラムを自動実行するスケジューラー

cronについては別の記事で解説しているので

参考にしてみてください

使用例を説明する前に

cronの設定画面の開き方を簡単に説明しておきます

  1. ターミナルを開く
  2. ターミナル上で”crontab -e”を入力(パスはどこでもOK)
  3. “i”でINSERTモードに入る(文字入力が可能となる)
  4. cronの設定を書く
  5. EscボタンでINSERTモードを抜ける
  6. “:wp”(保存して閉じる)と入力してcronの設定画面を閉じる
  7. ターミナル画面に戻る

それでは使用例を説明します

毎日定時にシステムをスリープさせる

例:毎日夜11時にシステムをスリープ状態にする

# cronの設定
0 23 * * * pmset sleepnow

週末だけスリープ設定を変更する

例:週末だけディスプレイのスリープを長めに設定する

0 18 * * 5 pmset -a displaysleep 30
0 18 * * 0 pmset -a displaysleep 10

pmsetとcronを組み合わせることで

Macのエネルギー管理を日時指定で自動化することができます

少しでも省電力設定にして長く大切にパソコンを使用できるように設定してみましょう!

最新情報をチェックしよう!