1. 概要

Linuxは非常に堅牢なオペレーティングシステムであるため、Linuxサーバーを再起動する必要はほとんどありません。 ただし、システムを再起動する必要がある理由がある場合があります。

たとえば、パーソナルコンピュータでLinuxを実行している場合、システムの再起動とシャットダウンは日常業務である可能性があります。

このチュートリアルでは、コマンドラインからLinuxシステムを再起動およびシャットダウンするためのいくつかの便利なコマンドを学習します。

2. システムの再起動またはシャットダウン

shutdown restart、halt、poweroff など、いくつかのコマンドでシステムを再起動またはシャットダウンできます。

システムを再起動またはシャットダウンすると、実行中のすべてのプロセスが停止するため、これらのコマンドを実行するには、root権限が必要です。

最新のLinuxディストリビューションのほとんどは、システムおよびサービスマネージャーとしてsystemdを採用しています。 systemdで管理されているシステムでは、r システムの起動とシャットダウンは、systemctlによって一元的に制御されます。

たとえば、Ubuntuシステムでこれらのコマンドを確認してみましょう。

$ file /sbin/{halt,poweroff,reboot,shutdown}
/sbin/halt:     symbolic link to /bin/systemctl
/sbin/poweroff: symbolic link to /bin/systemctl
/sbin/reboot:   symbolic link to /bin/systemctl
/sbin/shutdown: symbolic link to /bin/systemctl

これらすべてのコマンドが同じコマンドsystemctlにリンクしていることを知って少し驚くかもしれません。 これは、 systemctl プログラムが、実行方法に基づいて動作を変更する手法を使用しているためです。

次のセクションでは、これらのコマンドについて詳しく見ていきます。

3. shutdownコマンド

shutdown コマンドを使用して、Linuxシステムを安全に再起動またはシャットダウンできます。

shutdownコマンドを使用する構文は簡単です。

shutdown [OPTIONS...] [TIME] [MESSAGE]

オプションなしでshutdownを実行すると、1分でマシンの電源がオフになります。

root# date +'%F %T'
2020-04-04 20:55:43

root# shutdown
Shutdown scheduled for Sat 2020-04-04 20:56:50 CEST, use 'shutdown -c' to cancel.

通常のユーザーがsudoを使用してroot権限を取得するように構成されている場合は、rootユーザーに切り替えずにマシンの電源をオフにすることもできます。

$ sudo shutdown

3.1. 一般的なオプション

それでは、shutdownコマンドでサポートされている一般的なオプションを見てみましょう。

-r オプションを渡すと、マシンの電源を切る代わりにシステムを再起動できます。

root# shutdown -r
Shutdown scheduled for Sat 2020-04-04 21:56:50 CEST, use 'shutdown -c' to cancel.

-H オプションは、shutdownコマンドにシステムを停止するように指示します。

root# shutdown -H
Shutdown scheduled for Sat 2020-04-04 21:56:50 CEST, use 'shutdown -c' to cancel.

システムの停止とマシンの電源オフは少し異なります。

  • 停止:実行中のすべてのプロセスを終了し、すべてのCPUをシャットダウンします
  • 電源オフ:停止と同じで、システムからの電力を遮断しようとします

 3.2. シャットダウン操作をスケジュールする

1分以内にシステムをシャットダウンまたは再起動したくない場合があります。 代わりに、指定した時間にシャットダウン操作をスケジュールできます。

shutdown コマンドは、スケジューリングのために2つの異なる時間形式をサポートします。

  • 絶対時間: HH:mm
  • 相対時間: + NumberOfMinutes

たとえば、システムの再起動を午前8時8分にスケジュールできます。

root# shutdown -r 08:08
Shutdown scheduled for Sun 2020-04-05 08:08:00 CEST, use 'shutdown -c' to cancel.

今から30分後にシステムの電源オフをスケジュールする別の例を見てみましょう。

root# shutdown +30
Shutdown scheduled for Sun 2020-04-04 22:28:00 CEST, use 'shutdown -c' to cancel.

システムをすぐにシャットダウンしたい場合は、+0または便利なエイリアスnowを使用できます。

root# shutdown now

Linuxはマルチユーザーオペレーティングシステムであるため、現在ログインしているすべてのユーザーに、計画されているシャットダウンまたは再起動に関するメッセージをブロードキャストすることができます。

root# shutdown -r +45 "Attention: This system will restart in 45 minutes!"
Shutdown scheduled for Sun 2020-04-04 22:48:00 CEST, use 'shutdown -c' to cancel.

-cオプションを使用して、スケジュールされたshutdownプロセスをキャンセルできます。

root# shutdown -c "Scheduled reboot is cancelled."

4. 再起動、停止、およびpoweroffコマンド

restart、halt 、および poweroff コマンドは、システムを再起動またはシャットダウンすることもできます。

これらは類似しており、同じオプションをサポートしているため、機能の観点からこれらのコマンドについて説明します。

4.1. システムを再起動するには

restart コマンドを使用して、システムを再起動できます。

root# reboot

–rebootオプションをhaltおよびpoweroff コマンドに渡して、マシンを再起動させることもできます。

root# halt --reboot
root# poweroff --reboot

4.2. 機械を停止するには

名前が示すように、halltコマンドはマシンを停止するためのものです。 次のコマンドを実行するだけで、マシンを停止できます。

root# halt

–haltオプションをrebootおよびpoweroff コマンドに渡して、マシンを停止させることもできます。

root# reboot --halt
root# poweroff --halt

4.3. マシンの電源を切るには

マシンの電源を安全にオフにしたい場合は、poweroffコマンドを使用できます。 引数なしでこのコマンドを実行すると、マシンの電源がオフになります。

root# poweroff

-pオプションをrebootおよびhaltコマンドに渡して、システムを停止させ、電源を切ることもできます。

root# reboot -p
root# halt -p

4.4. -fオプション

3つのコマンドはすべて、 -f オプションをサポートして、マシンを強制的に再起動、停止、または電源オフします。

forceオプションの意味を理解するために、これら3つのコマンドの背景を詳しく見てみましょう。

-f オプションを指定せずにこれらのコマンドを実行すると、適切なオプションを指定してshutdownツールが呼び出されます。

たとえば、 systemd システムでは、次のようになります。

reboot 
--(invokes)--> shutdown -r now 
--(invokes)--> systemctl isolate reboot.target

The restart.target 上記のコマンドでは、 システムターゲット為に systemctl。 システムターゲットのいくつかの事前定義されたタスクは、によって実行されます systemctl コマンド—たとえば、実行中のすべてのプロセスを停止したり、マウントされたデバイスを安全にアンマウントしたりします。

ただし、 -f オプションを3つのコマンドに渡すと、shutdownコマンドは呼び出されません。 代わりに、 restart()システムコールを実行して、システムを直接再起動します。

systemd システム、コマンド再起動-f 電話します systemctl –forcereboot.target。  The -力オプションは systemctl システムターゲットをスキップして、 リブート() システムコールを直接。

-f オプションは、データが失われる可能性があるため、注意して使用する必要があります。

5. 結論

この記事では、コマンドラインからLinuxシステムを再起動およびシャットダウンする方法を学習しました。 多くのコマンドが再起動またはシャットダウンジョブを実行できることを確認しました。

システムを再起動またはシャットダウンすると、実行中のすべてのプロセスが強制終了されるため、コマンドを起動する前に、特にパブリックサーバーで実行する場合は、常によく考えておく必要があります。