\r\n\r\n
このチュートリアルでは、コマンドラインからLinuxまたはmacOSコンピュータをクリーンかつ安全に再起動またはシャットダウンする方法を説明します。
時には、再起動や完全なシャットダウンが必要な場合もあります。GUIレスのサーバーを使用している場合や、リモートコンピューターへのSSHセッションを使用している場合は、コマンドラインが唯一の選択肢となります。 LinuxやUnix系システム(macOSなど)には、コマンドラインから直接システムをシャットダウンまたは再起動するコマンドがいくつか用意されています。
以下のコマンドを使用できます。
マニュアルページでこれらのコマンドを見つけるのは、混乱することがあります。選択したコマンドラインオプションに応じて、これらのコマンドはすべて、シャットダウン、再起動、システム停止を実行します。実は、リブート、ハルト、パワーオフのマニュアルページには、まったく同じ情報が書かれています。
その答えは、長い間使われてきたsystemv initシステムに代わるsystemdブートシステムにある。Linuxの世界では、2011年にFedoraがsystemdを使い始めて以来、多くのディストリビューションで採用され、2015年にはdebianとUbuntuがsystemdに切り替わりました。
systemd ベースのディストリビューションでは、shutdown、reboot、halt、poweroff コマンドは事実上 systemctl コマンドのショートカットです。これらのコマンドを残すことで、systemv initベースのディストリビューションとある程度の互換性を保つことができます。つまり、シェルスクリプト (およびコアとなる systemv システム管理者) が systemd ディストリビューションを実行しているコンピュータに移動されてもクラッシュしないようになっています。
マルチユーザーシステムのシャットダウンや再起動は、前もって計画する必要があります。シャットダウンや再起動のタイミングを決め、他のシステムユーザーにシャットダウンが迫っていることを警告する必要があります。自分専用のパソコンで、自分だけが使っていれば、生活はずっとシンプルになります。
これらのコマンドを実行するには、sudoグループに所属している必要があります。つまり、スーパーユーザー権限とsudoコマンドが使えることが条件となります。発行したコマンドがすぐに有効になり、他のログインユーザーに影響を与えない場合は、sudoを使用する必要はありません。コマンドの1つを使おうとして拒否された場合は、sudoを使用して再試行してください。
デフォルトでは、shutdownコマンドは、すべてのプロセスが完全に停止し、すべてのファイルシステムが同期され、すべてのCPUアクティビティが停止していることを保証します。これが「停止状態」です。そして、ハードウェアに電力をカットするようにメッセージを送ります。これはもちろん、シャットダウン、つまり「オフ」の状態である。
通常、shutdownには、時間文字列や、ログインしているユーザーにshutdownを閉じるよう警告するメッセージなど、いくつかのパラメータを渡します。ここでは、15分後に閉じる予定です。shutdown、space、+15、spaceと入力し、送信してください。
shutdown +15 Shutting down in 15 minutes!使用する時間文字列は+15で、今から15分後という意味です。+はオプションで、15と入力できます。
ログインしているユーザーには、私たちが提供するメッセージが表示されます。
シャットダウンをキャンセルするには、-c(キャンセル)オプションを使用します。
shutdown -c閉鎖が解除された旨の通知は届きませんが、一緒にログインしているユーザーには通知が届きます。
時間文字列を指定しない場合は、1分後に終了するようにスケジュールされます。なお、時間文字列を指定しない場合は、ログインしているユーザーにメッセージを提供することはできません。
shutdown1分も待てない場合は、nowを時間文字列として使用し、即座にオフにすることができます。nowは、+0を使用するのと同じように使用します。
時間文字列は、例えば23:00のように設定することができます。HH:MM形式に従い、24時間形式でなければなりません。新規ログインは、システムが停止する5分前にブロックされます。
デフォルトのシャットダウン動作では、コンピュータが停止状態になり、その後シャットダウン状態になることが分かっています。他のコマンドラインオプションを渡すことで、この動作をオーバーライドすることができます。
ここでは、私たちが計画したリスタートの一例をご紹介します。
shutdown -r 08:20 System rebooting at 08:20これらのコマンドは、その名前が意味する動作を実行します。しかし、これらの各製品は、再起動、停止、またはシャットダウンを実行させるためのコマンドラインオプションを受け付けます。しかし、なぜ問題を混乱させるのでしょうか?これらのコマンドは、表面上で使用するのが最適です。
すぐに再起動させたい場合は、rebootを使用します。今すぐシャットダウンしたい場合はpoweroffを、今すぐシステムを停止したい場合はhaltを使用します。
reboot halt poweroffこれらのコマンドはすぐに有効になります。なお、これらのコマンドが拒否された場合は、sudoを前につけてください。 ただし、拒否されるのは、通常、他のユーザーがシステムにログオンしているためで、それらをオフラインにすることになります。
マルチユーザー環境では、これらの操作を行うためにシャットダウンを使用することで、より多くの制御を行うことができます。このような場合、シャットダウンや再起動をスケジュールしたり、ブロードキャストメッセージでユーザーに警告する機能は非常に有効です。シングルユーザーコンピュータの場合は、再起動と電源断で十分な場合があります。