LoginSignup
7
11

More than 3 years have passed since last update.

Macでコマンドラインからsleep

Posted at

コマンドラインからMacをスリープさせる時(ターミナル使ってる時、いちいちマウスとかに手を伸ばしてメニューからスリープを呼び出すのがめんどくさいダメ人間)、
よくこのコマンドが紹介されています。

$ osascript -e 'tell application "Finder" to sleep'

Finderを呼び出してスリープさせるのですが、10.9以降ではosascriptを使わなくてもスリープさせられるんですね。

$ pmset sleepnow
Sleeping now...

(コマンドを実行した時点で画面が真っ暗になります。"Sleeping now..."はスリープから復旧した時ターミナルに表示されています)

(良い子のみんなはしないと思いますが)sshとかでリモートでログインしていて、うっかり上記コマンドを実行すると「あ…」ってことになると思います。
「システム環境設定」の「ネットワークアクセスによるスリープ解除」にチェックを入れて、そとからsshで入ろうとしたのですが、反応ありませんでした。
pmsetのmanを見ると

networkoversleep - this setting affects how OS X networking presents shared network services during system sleep. This setting is not used by all platforms; changing its value is unsupported.

とあるので、すべての環境で「ネットワークアクセスによるスリープ解除」は有効になるとは限らないようです。手元の環境(iMac+10.13)ではスリープ後、外部からsshで入れませんでした(Port Scanしたらポートも開いてなかったので完全に寝落ちしてましたね)

リモートでディスプレイだけオフにする場合は以下コマンド(使い状況はあまり無いと思いますが)。

$ pmset displaysleepnow

ちなみにsleepコマンドは、あくまでもコマンド実行の際、次のコマンドまで待機させるだけ。

$ date +%H:%M:%S && sleep 5 && date +%H:%M:%S
20:00:55
20:01:00
7
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
11