りなっくすとらずぱい!

Raspberry Pi初心者に向けた各コマンドの説明、プログラムの作り方について紹介しています!

shutdown - 端末の電源を落とす・再起動する

f:id:ibuquicallig:20191213010627p:plain

この記事ではLinuxのshutdownの基本的な使い方と例、オプションなどについて解説しています。

この記事でできること

  • shutdownコマンドを利用して端末の電源を落とす、または再起動することができる。

shutdownコマンド

読んで字のごとく、端末をシャットダウン(電源をオフにする)コマンドとなっています。実行には管理者権限が必要です。一般ユーザーが大事なプログラムが動いているシステムを停止させることができたら大変ですよね・・・(笑)

名前自体はshutdownですが、オプションを設定することで再起動することもできます。おそらく電源を落とすよりもコチラのほうがよく使われると思います。

端末の電源を落とす

以下のコマンドを実行することで端末の電源をすぐに落とします。

$ sudo shutdown -h now

-hオプションをつけないとシステムを停止した後に電源を切ってくれない(自分で各端末ごとの電源を落とすハード側の操作が必要だ)そうです。Raspberry Piの場合いったん終了してしまうと電源を挿しなおす必要があるのでほとんど同じとなります。他端末でも確実に電源を落とせるように-hオプション付きで覚えておきましょう。

電源を落とす時刻を指定する

上のコマンドではnowを指定して速攻電源OFFを実行しましたが、時間指定してシャットダウンすることもできます。

# すぐにシャットダウンする
$ sudo shutdown now
$ sudo shutdown 0

# 午前3時30分にシャットダウンするよう予約する
$ sudo shutdown 3:30
Shutdown scheduled for Fri 2019-12-13 03:30:00 JST, use 'shutdown -c' to cancel.

# 5分後にシャットダウンするよう予約する
$ sudo shutdown 5
# +を付けてもOK
$ sudo shutdown +5

指定方法は2通りあり、hh:mmで定時予約する方法と、n分後に予約する方法があります。また0分後という意味でnowというエイリアスを使用することができます。manページにも書かれていますが、十中八九このnowだけ使えれば問題ないですね!

manページを読む限り、時間を指定するのは必須のようですが、Raspberry Piでは指定しない場合、1分後にシャットダウンが実行されます。

予約したシャットダウンをキャンセルするにはshutdown -cを実行します。cCancelの頭文字ですね。

-r オプションで再起動する

-rオプションを付けることで再起動することができます。rReboot(再起動)の頭文字です。

Raspberry Piでは再び電源を挿しなおさないとシステムを起動することができませんので、このコマンドをよく使います。このオプションを指定しても時間を指定することができます。

$ sudo shutdown -r now
# すぐに再起動

普通に実行した時と同様に時間指定で再起動することも可能です。

ほかのユーザーにシャットダウンすることを知らせる

n分後にシャットダウンを実行するようにコマンドを実行した場合、ログインしている他のユーザーにシャットダウン時刻が通知されます。指定した時間の後ろに文字列を追加することで、通知する内容を追加することができます。

$ sudo shutdown 5 電源を落とします

# 他のログインしているユーザーのコンソール
Broadcast message from root@raspi on pts/0 (Fri 2019-12-13 00:30:23 JST):

電源を落とします
The system is going down for poweroff at Fri 2019-12-13 00:35:23 JST!

シャットダウンが予約されているとログインできなくなる

シャットダウンの予約をすると、sshコマンドなどで外部からログインしようとすると拒否されます。

> ssh raspi1
System is going down. Unprivileged users are not permitted to log in anymore. For technical details, see pam_nologin(8).`

再びログインできるようにするには再起動後にするか、shutdown -cを実行して止めます。

なお、この状態でもsuコマンドでユーザーを切り替えることは可能です。

参考

以下のサイトの情報を引用・参考にしました。