サーバーと同じ部屋にいるときは、サーバーをシャットダウンまたは再起動するのは簡単です。 電源ボタンを押したままにすることも、マシン全体のプラグを抜くこともできます。 これらのソリューションはエレガントではないだけでなく、データを破壊し、ハードウェアに損傷を与える可能性があります。 また、お気に入りのリモートサーバーにログインしている場合も機能しません。

ホスティングプロバイダーによっては、マシンをシャットダウンまたは再起動するための光沢のある赤いボタンが完全に付いた、優れたGUIインターフェイスを自由に使用できる場合があります。 これは十分なソリューションですが、必ずしも異なるホスティングプロバイダー間で拡張できるとは限りません。

コマンドラインで物事を行う方法を知っていると、可能な限りスタックにとらわれないようになります。 ホスティングプロバイダーを簡単に切り替えることができ、常に同じ一貫したツールセットを自由に使用できます。 この柔軟性は、慣れていない新しいスタックで作業する場合に非常に便利です。

入門

この記事で説明するコマンドshutdownおよびrebootは、名前が示すとおりに機能します。 彼らはあなたのマシンをシャットダウンまたは再起動します。 これらはやや破壊的なコマンドであるため、ローカルで実行する場合は、システムからシステムへのシャットダウンまたは再起動の準備をしてください。

Unixライクなオペレーティングシステム(Linuxなど)を実行しているリモート開発サーバーまたはステージングサーバーを使用するのが理想的なシナリオです。 実際、これらのコマンドを使用してサーバーをオフラインにするため、ボックスを再起動する必要がない限り、実稼働サーバーで実行することはお勧めしません。

次のコマンドを実行するには、昇格したスーパーユーザー権限が必要になる可能性があります。 コマンドが見つからないというエラーが表示された場合は、sudoで再試行してください。

使用しているマシンでスーパーユーザー権限がない場合、マシンをシャットダウンまたは再起動できない可能性があります。

シャットダウン

システムのシャットダウンは、shutdownコマンドを使用して、最も単純な形式で、引数なしで実行できます。

$ shutdown # Graceful shutdown in 1 minute

引数がない場合、shutdownコマンドは、現在の時刻から1分間のシャットダウンをスケジュールします。 将来的に予定されているため、-c引数を使用してシャットダウンをキャンセルする機会があります。

$ shutdown -c # Cancel a scheduled shutdown

危機は回避されました!

最初のshutdownコマンドを実行したときに、ブロードキャストメッセージが発行されたことにお気づきかもしれません。 これがウォールメッセージであり、現在システムにログインしているすべてのユーザーに発行されます。

シャットダウンの時間と、ユーザーに表示されるウォールメッセージの内容をスケジュールできます。

$ shutdown now "Cya later alligator" # Immediately shut down
$ shutdown +5 "Cya later alligator"  # Shutdown in 5 minutes

引数は順番に渡され、値が何であるかを示す追加の--flagsがないため、特定の順序で渡される必要があります。 つまり、時間を指定せずにウォールメッセージをカスタマイズすることはできません。

再起動

サーバーを再起動するための迅速で簡単な方法を探しているだけなら、rebootコマンドはほぼ同じくらい簡単です。

$ reboot    # Graceful restart
$ reboot -f # Forceful, like holding the power button

Unix哲学と調和して、rebootコマンドは、その名前が意味することを実行しますが、それ以外はほとんど実行しません。

一方、shutdownコマンドは、実際には「シャットダウン」という名前が推測するよりも少し多くのことを実行します。これを使用して、マシンを再起動したり、シャットダウンしたりできます。

これが重要な理由は、rebootコマンドは迅速で作業を完了しますが、shutdownコマンドを使用してマシンを再起動すると、スケジュールを設定できるだけでなく、スケジュールを設定できるという追加の利点が得られるためです。壁のメッセージを編集します。

shutdownコマンドに、シャットダウンするだけでなく再起動するように指示するには、-rまたは--reboot引数を他のオプションとともに渡します。

$ shutdown --reboot                       # Reboot in 1 minute
$ shutdown -r now "After while crocodile" # Immediately reboot
$ shutdown -r +5 "After while crocodile"  # Reboot in 5 minutes

以前に完全シャットダウンをキャンセルした方法と同様に、rebootに追加されたもう1つの利点は、-c引数を指定して再度呼び出すことにより、shutdownを介して再起動をキャンセルできることです。

$ shutdown -c # Cancel a scheduled shutdown (or reboot!)