「HaltコマンドとShutdownコマンドの違いは何ですか?」を読んでください。、私は一般的に、-h / -rオプションの有無にかかわらず、コマンドシャットダウンが何をするのかを知っています。
「halt」コマンドは、システムの電源をオフにして、システムの実行レベル0にします。
「shutdown」コマンドは、-hまたは-rコマンドを使用せずに、システムの電源をオフにしてランレベル1を実行します。
コマンド「poweroff」は実行レベル0または1になりますか?これがこれら3つのコマンドの唯一の主な違いですか?
質問のタグごとに、Red Hat EnterpriseLinuxを使用しています。バージョン7以降、systemdを使用しています。systemdの世界では、他のどの答えも正しくありません。また、あなたの質問のいくつかの仮定もありません。
halt
は、vanSmoorenburgの「System5」init
ユーティリティからのコマンド用のものです。/sbin/halt
へのシンボリックリンクであるステートメントは無視してください/sbin/reboot
。それはsystemdには当てはまりません。個別のreboot
プログラムはありません。halt
またはプログラムをreboot
呼び出すステートメントは無視してくださいshutdown
。それらはsystemdにも当てはまりません。個別のshutdown
プログラムはありません。すべてのシステム管理ツールセットには、これらのユーティリティのバージョンがあります。systemdには、成り上がり、間食、バンSmoorenburg init
、およびBSDはinit
すべて自分自身を持っているhalt
、poweroff
などと。それぞれのメカニズムはわずかに異なります。彼らのマニュアルページもそうです。
systemdにツールセットでhalt
、poweroff
、reboot
、telinit
、とshutdown
されているすべてへのシンボリックリンク/bin/systemctl
。これらはすべて下位互換性のあるシムであり、systemdの主要なコマンドラインインターフェイスを呼び出すための単なる省略形ですsystemctl
。それらはすべて、同じ単一のプログラムにマップされます(実際にはそうです)。(慣例により、シェルは呼び出された名前を通知します。)
これらのコマンドのほとんどは、systemdに、を使用systemctl
して特定のターゲットを分離するように指示するための省略形です。分離についてはマニュアルページ(qv)で説明されていますが、この回答の目的上、ターゲットを開始し、他のターゲットを停止することと考えることができます。systemdで使用される標準ターゲットは、(8)マニュアルページにリストされています。systemctl
systemd.special
bootup
systemdツールセットの(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
ターゲットと競合させる。
systemctl
systemd-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.target
default.target
systemctl
--force
オプションhalt
、reboot
およびpoweroff
コマンドが言うように同じである--force --force
にsystemctl halt
、systemctl reboot
とsystemctl poweroff
命令。これにより、直接systemctl
電話をかけようとしますreboot()
。通常は、ターゲットを分離しようとするだけです。telinit
と同じではありませんinit
。これらはsystemdの世界では異なるプログラムであり、後者はsystemd
プログラムの別名であり、プログラムの名前ではありませんsystemctl
。systemd
プログラムは、必ずしもすべての任意のバンSmoorenburgの互換性、およびいくつかにsystemdのオペレーティングシステム上でコンパイルされていない1段のしようとした場合、誤って呼び出されて文句を言います。init N
systemctl
。systemdのマニュアルページ。freedesktop.org。systemd.special
。systemdのマニュアルページ。freedesktop.org。bootup
。systemdのマニュアルページ。freedesktop.org。init
。noshガイド。ソフトウェア。この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加