Linuxサーバーを停止するためのこれらのコマンドの違いは何ですか?

Win.T

「HaltコマンドとShutdownコマンドの違いは何ですか?」を読んでください。、私は一般的に、-h / -rオプションの有無にかかわらず、コマンドシャットダウンが何をするのかを知っています。

「halt」コマンドは、システムの電源をオフにして、システムの実行レベル0にします。

「shutdown」コマンドは、-hまたは-rコマンドを使用せずに、システムの電源をオフにしてランレベル1を実行します。

コマンド「poweroff」は実行レベル0または1になりますか?これがこれら3つのコマンドの唯一の主な違いですか?

JdeBP

そして今、systemdの答え。

質問のタグごとに、Red Hat EnterpriseLinuxを使用しています。バージョン7以降、systemdを使用しています。systemdの世界では、他のどの答えも正しくありません。また、あなたの質問のいくつかの仮定もありません。

  • ランレベルを忘れてください; それらは存在しますが、互換性シムとしてのみ存在します。systemdのドキュメントには、この概念は「廃止された」と記載されています。systemdオペレーティングシステムでこのようなことを学び始めているのなら、そこから始めないでください。
  • marcelmが引用したマニュアルページは忘れてください。これは適切なツールセットからのものではなく、別のツールセットのコマンドの説明であり、systemdには正しくありません。これhaltは、vanSmoorenburgの「System5」initユーティリティからコマンド用のものです
  • ;/sbin/haltへのシンボリックリンクであるステートメント無視してください/sbin/rebootそれはsystemdには当てはまりません。個別のrebootプログラムはありません
  • コマンドライン引数を使用してプログラムを呼び出す、haltまたはプログラムをreboot呼び出すステートメントは無視してくださいshutdownそれらはsystemdにも当てはまりません。個別のshutdownプログラムはありません

すべてのシステム管理ツールセットには、これらのユーティリティのバージョンがあります。systemdには、成り上がり、間食、バンSmoorenburg init、およびBSDはinitすべて自分自身を持っているhaltpoweroffなどと。それぞれのメカニズムはわずかに異なります。彼らのマニュアルページもそうです。

systemdにツールセットでhaltpoweroffreboottelinit、とshutdownされているすべてへのシンボリックリンク/bin/systemctlこれらはすべて下位互換性のあるシムであり、systemdの主要なコマンドラインインターフェイスを呼び出すための単なる省略形ですsystemctlそれらはすべて、同じ単一のプログラムにマップされます(実際にはそうです)(慣例により、シェルは呼び出された名前を通知します。)

ランレベルではなくターゲット

これらのコマンドのほとんどは、systemdに、を使用systemctlて特定のターゲット分離するように指示するための省略形です分離についてはマニュアルページ(qv)で説明されていますが、この回答の目的上、ターゲットを開始し、他のターゲットを停止することと考えることができます。systemdで使用される標準ターゲットは、(8)マニュアルページにリストされています。systemctlsystemd.special

bootupsystemdツールセット(7)マニュアルページの図、特に最後の図は、ここに関連する3つの「最終的な」ターゲットがあることを示しています。

  • halt.target—システムがこのターゲットを完全に分離する状態に達すると、reboot(RB_HALT_SYSTEM)システムコールが呼び出されます。カーネルはROMモニタープログラムに入ろうとするか、単にCPUを停止します(そうするために適切なメカニズムを使用します)。
  • reboot.target—システムがこのターゲットを完全に分離する状態に達すると、reboot(RB_AUTOBOOT)システムコール(またはマジックコマンドラインと同等のもの)が呼び出されます。カーネルは再起動をトリガーしようとします。
  • poweroff.target—システムがこのターゲットを完全に分離する状態に達すると、reboot(RB_POWER_OFF)システムコールが呼び出されます。可能であれば、カーネルはシステムの電源を切ろうとします。

これらは、ランレベルではなく、最終的なシステムの状態として考慮する必要があることです。図から、systemdターゲットシステム自体が、他のシステムでは明示的ではなく暗黙的であるものをエンコードしていることに注意してください。たとえば、これらの最終ターゲットのそれぞれがターゲットを包含するという概念など、shutdown.targetシャットダウンする前に停止する必要があるサービスを記述します。それらshutdown.targetターゲットと競合させる

systemctlsystemd-logind呼び出し元のユーザーがスーパーユーザーではない場合に、要求を送信しようとします。また、遅延シャットダウンをに渡しsystemd-shutdowndます。そして、いくつかの速記はwall通知をトリガーします。これらの複雑さはさておき、あなたが現在スーパーユーザーであり、スケジュールされたアクションを要求していないと仮定すると、この回答は数倍長くなります。

  • systemctl isolate halt.target 速記があります:
    • shutdown -H now
    • systemctl halt
    • 飾り気のないプレーン halt
  • systemctl isolate reboot.target 速記があります:
    • shutdown -r now
    • telinit 6
    • systemctl reboot
    • 飾り気のないプレーン reboot
  • systemctl isolate poweroff.target 速記があります:
    • shutdown -P now
    • telinit 0
    • shutdown now
    • systemctl poweroff
    • 飾り気のないプレーン poweroff
  • systemctl isolate rescue.target 速記があります:
    • telinit 1
    • systemctl rescue
  • systemctl isolate multi-user.target 速記があります:
    • telinit 2
    • telinit 3
    • telinit 4
  • systemctl isolate graphical.target 速記があります:
    • telinit 5

さまざまな異なるコマンドライン構文を解析した後、これらはすべて最終的にsystemctlプログラム内の同じコードパスになります。

ノート:

  • オプションなしの従来の動作はshutdown nowシングルユーザーモードに切り替えることでした。これはsystemdには当てはまりません。rescue.target—シングルユーザーモードがsystemdでレスキューモード名前が変更されました—shutdownコマンドでは到達できません
  • telinit 本当にん完全にそれらのすべてを無視し、マニュアルページを記述することで、ファイルシステムのシンボリックリンクを。前述のマッピングは、テーブル内のプログラムに組み込まれています。runlevelN.targetdefault.targetsystemctl
  • systemdには、現在の実行レベルの概念はありませんこれらのコマンドの操作は、「実行レベルNの場合」を条件としません
  • --forceオプションhaltrebootおよびpoweroffコマンドが言うように同じである--force --forcesystemctl haltsystemctl rebootsystemctl poweroff命令。これにより、直接systemctl電話かけようとしますreboot()通常は、ターゲットを分離しようとするだけです。
  • telinitと同じではありませんinitこれらはsystemdの世界では異なるプログラムであり、後者はsystemdプログラムの別名であり、プログラムの名前ではありませんsystemctlsystemdプログラムは、必ずしもすべての任意のバンSmoorenburgの互換性、およびいくつかにsystemdのオペレーティングシステム上でコンパイルされていない1段のしようとした場合、誤って呼び出されて文句を言いますinit N

参考文献

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

これらのコマンドの違いは何ですか?

分類Dev

これらのコマンドの違いは何ですか?

分類Dev

出力とコマンドをグループ化するためのbashの()と{}の違いは何ですか

分類Dev

Djangoサーバーを実行するためのdockerコマンドとは何ですか?

分類Dev

これら2つのバージョンのコードの違いは何ですか?

分類Dev

リソース使用量を取得するためのこれらの方法の違いは何ですか?

分類Dev

委任用のこれら2つのコードサンプルの違いは何ですか

分類Dev

addEventListenerでコールバックを使用するこれらの2つの方法の違いは何ですか?

分類Dev

TensorFlowのこれら2つのコマンドの違いは何ですか

分類Dev

ユーザーセッションを保存するためのロードバランサーCookieの粘着性とElastiCacheの違いは何ですか?

分類Dev

これらのReactNative開始コマンドの違いは何ですか?

分類Dev

これらのGitコマンドの違いは何ですか

分類Dev

これらのgitdiffコマンドの違いは何ですか?

分類Dev

これら2つのgit fetchコマンドの違いは何ですか?

分類Dev

これら2つのコマンドの違いは何ですか?

分類Dev

mysqlサーバー:「サーバーの停止」と「オフラインにする」の違いは何ですか?

分類Dev

これらの2行のコードの違いは何ですか?

分類Dev

Luaのこれら2つのコードの違いは何ですか

分類Dev

これらの2行のコードの違いは何ですか

分類Dev

これらのバッチコードの行は何のためのものですか?

分類Dev

これらのレコードを取得するためのクエリは何ですか?

分類Dev

Linuxサーバー(GUIなし)のコマンドラインからネット速度をテストするにはどうすればよいですか?

分類Dev

これらのコードブロックの違いは何ですか?

分類Dev

これら2つのPythonコードの違いは何ですか?

分類Dev

これら2つのコードの違いは何ですか?

分類Dev

これら2つのコードの違いは何ですか?

分類Dev

これら2つのコードの違いは何ですか?

分類Dev

これら2つのコードの違いは何ですか

分類Dev

PulseAudio のバージョンを知るためのコマンドは何ですか?

Related 関連記事

  1. 1

    これらのコマンドの違いは何ですか?

  2. 2

    これらのコマンドの違いは何ですか?

  3. 3

    出力とコマンドをグループ化するためのbashの()と{}の違いは何ですか

  4. 4

    Djangoサーバーを実行するためのdockerコマンドとは何ですか?

  5. 5

    これら2つのバージョンのコードの違いは何ですか?

  6. 6

    リソース使用量を取得するためのこれらの方法の違いは何ですか?

  7. 7

    委任用のこれら2つのコードサンプルの違いは何ですか

  8. 8

    addEventListenerでコールバックを使用するこれらの2つの方法の違いは何ですか?

  9. 9

    TensorFlowのこれら2つのコマンドの違いは何ですか

  10. 10

    ユーザーセッションを保存するためのロードバランサーCookieの粘着性とElastiCacheの違いは何ですか?

  11. 11

    これらのReactNative開始コマンドの違いは何ですか?

  12. 12

    これらのGitコマンドの違いは何ですか

  13. 13

    これらのgitdiffコマンドの違いは何ですか?

  14. 14

    これら2つのgit fetchコマンドの違いは何ですか?

  15. 15

    これら2つのコマンドの違いは何ですか?

  16. 16

    mysqlサーバー:「サーバーの停止」と「オフラインにする」の違いは何ですか?

  17. 17

    これらの2行のコードの違いは何ですか?

  18. 18

    Luaのこれら2つのコードの違いは何ですか

  19. 19

    これらの2行のコードの違いは何ですか

  20. 20

    これらのバッチコードの行は何のためのものですか?

  21. 21

    これらのレコードを取得するためのクエリは何ですか?

  22. 22

    Linuxサーバー(GUIなし)のコマンドラインからネット速度をテストするにはどうすればよいですか?

  23. 23

    これらのコードブロックの違いは何ですか?

  24. 24

    これら2つのPythonコードの違いは何ですか?

  25. 25

    これら2つのコードの違いは何ですか?

  26. 26

    これら2つのコードの違いは何ですか?

  27. 27

    これら2つのコードの違いは何ですか?

  28. 28

    これら2つのコードの違いは何ですか

  29. 29

    PulseAudio のバージョンを知るためのコマンドは何ですか?

ホットタグ

アーカイブ