「停止コマンドとシャットダウンコマンドの違いは何ですか?」を読んでください。 、私は一般的に、-h / -rオプションの有無にかかわらず、コマンドシャットダウンが何をするのかを知っています。
「halt」コマンドは、システムの電源をオフにして、
システムのレベル0を実行します。「shutdown」コマンドは、システムの電源をオフにして、-hまたは-rコマンドを使用せずに
1を実行します。
コマンド「poweroff」は実行レベル0または1になりますか?
これがこれら3つのコマンドの唯一の主な違いですか?
承認された回答:
そして今、systemdの答え。
質問のタグに従って、Red HatEnterpriseLinuxを使用しています。バージョン7以降、systemdを使用しています。他の答えはどれもsystemdの世界には正しくありません。また、あなたの質問のいくつかの仮定もありません。
- ランレベルを忘れてください。それらは存在しますが、互換性シムとしてのみ存在します。 systemdのドキュメントには、この概念は「廃止された」と記載されています。 systemdオペレーティングシステムでこのようなことを学び始めている場合は、そこから始めないでください。
- marcelmが引用したマニュアルページを忘れてください。これは適切なツールセットからのものではなく、別のツールセットのコマンドの説明であり、systemdには正しくありません。
停止
用のものです vanSmoorenburg「System5」からのコマンドinit
ユーティリティ。 -
/ sbin / hallt
というステートメントは無視してください/ sbin / restart
へのシンボリックリンクです;これはsystemdには当てはまりません。個別のreboot
はありません プログラム全体。 停止
するステートメントを無視します またはreboot
shutdown
を呼び出す コマンドライン引数を使用したプログラム。それらはsystemdにも当てはまりません。個別のshutdown
はありません プログラム全体。
すべてのシステム管理ツールセットには、これらのユーティリティのバージョンがあります。 systemd、upstart、nosh、van Smoorenburg init
、およびBSD init
すべてに独自のhalt
があります 、 poweroff
、など。それぞれのメカニズムはわずかに異なります。マニュアルページもそうです。
systemdツールセットでhalt
、 poweroff
、再起動
、 telinit
、および shutdown
すべて / bin / systemctl
へのシンボリックリンク 。それらはすべて 下位互換性シム。これは、systemdの主要なコマンドラインインターフェイスを呼び出すための単なる省略形です: systemctl
。それらはすべて、同じシングルにマップされます(実際にはそうです)。 プログラム。 (慣例により、シェルは呼び出し元の名前を通知します。)
ランレベルではなくターゲット
これらのコマンドのほとんどは、 systemctl
を使用してsystemdに通知するための省略形です。 、分離 特定のターゲット 。分離については、 systemctl
で説明されています。 マニュアルページ(q.v.)ですが、この回答の目的では、ターゲットを開始し、他のターゲットを停止することと考えることができます。 systemdで使用される標準ターゲットは、 systemd.special
にリストされています。 (8)マニュアルページ。
bootup
の図 (7)systemdツールセットのマニュアルページ、特に最後のページには、ここに関連する3つの「最終的な」ターゲットがあることが示されています。
-
hallt.target
—システムがこのターゲットを完全に分離する状態に達すると、restart(RB_HALT_SYSTEM)
が呼び出されます。 システムコール。カーネルは、ROMモニタープログラムに入ろうとするか、CPUを停止します(これを行うのに適切なメカニズムを使用します)。 -
restart.target
—システムがこのターゲットを完全に分離する状態に達すると、restart(RB_AUTOBOOT)
が呼び出されます。 システムコール(またはマジックコマンドラインと同等のもの)。カーネルは再起動をトリガーしようとします。 -
poweroff.target
—システムがこのターゲットを完全に分離する状態に達すると、restart(RB_POWER_OFF)
が呼び出されます。 システムコール。可能であれば、カーネルはシステムから電源を切断しようとします。
これら ランレベルではなく、最終的なシステムの状態として考慮する必要があるものです。図から、systemdターゲットシステム自体が、他のシステムでは明示的ではなく暗黙的であるものをエンコードしていることに注意してください。たとえば、これらの最終的なターゲットのそれぞれが shutdown.target
を含むという概念などです。 ターゲット。競合することにより、シャットダウンする前に停止する必要のあるサービスを記述します。 shutdown.target
ターゲット。
systemctl
systemd-logind
にリクエストを送信しようとします 呼び出し元のユーザーがスーパーユーザーではない場合。また、遅延シャットダウンを systemd-shutdownd
に渡します。 。そして、いくつかの速記は壁
をトリガーします 通知。これらの複雑さはさておき、あなたが現在スーパーユーザーであり、スケジュールされたアクションを要求していないと仮定すると、この回答は数倍長くなります:
-
systemctlisolatehalt.target
速記があります:-
shutdown -H now
-
systemctlhalt
- 飾り気のない
停止
-
-
systemctlisolatereboot.target
速記があります:-
shutdown -r now
-
telinit 6
systemctlrebootコード>
- 飾り気のない
再起動
-
-
systemctl Isolate poweroff.target
速記があります:-
shutdown -P now
-
telinit 0
今すぐシャットダウン
-
systemctl poweroff
- 飾り気のない
poweroff
-
-
systemctl Isolaterescue.target
速記があります:-
telinit 1
systemctlレスキュー
-
-
systemctl Isolate multi-user.target
速記があります:-
telinit 2
-
telinit 3
-
telinit 4
-
-
systemctlisolategraphical.target
速記があります:-
telinit 5
-
さまざまな異なるコマンドライン構文を解析した後、これらはすべて、最終的に systemctl
内の同じコードパスになります。 プログラム。
注:
- オプションのない
シャットダウンの従来の動作
シングルユーザーモードに切り替えました 。これはsystemdには当てはまりません。rescue.target
—シングルユーザーモードの名前がレスキューモードに変更されました systemd内—shutdown
では到達できません コマンド。 -
telinit
本当に これらのrunlevel Nをすべて完全に無視します .target
およびdefault.target
マニュアルページで説明されているファイルシステム内のシンボリックリンク。前述のマッピングは、systemctl
に組み込まれています。 プログラム、テーブル内。 - systemdには、現在の実行レベルの概念はありません。 。これらのコマンドの操作は、「ランレベル Nの場合」を条件としません。 「。
-
-force
停止
のオプション 、再起動コード> 、および
poweroff
コマンドは、-force --force
と言うのと同じです。systemctlhalt
へ 、systemctl restart
、およびsystemctl poweroff
コマンド。これにより、systemctl
が作成されますrestart()
を呼び出してみてください 直接。通常は、ターゲットを分離しようとするだけです。 -
telinit
init
と同じではありません 。これらはsystemdの世界では異なるプログラムであり、後者はsystemd
の別名です。systemctl
用ではなくプログラム プログラム。systemd
プログラムは必ずしもvanSmoorenburgとの互換性を備えてコンパイルされているとは限りません。また、一部のsystemdオペレーティングシステムでは、init Nを試行すると誤って呼び出されると不平を言います。
。
さらに読む
- 電源を切らずにシステムを停止する正当な理由はありますか?
- `init 0`がArchインストールで「過剰な引数」になるのはなぜですか?
- Stephen Wadeley(2014)。 「8。 systemdを使用したサービスの管理」RedHatEnterpriseLinux7システム管理者ガイド 。 RedHat。
- レナートポッターリング(2013-10-07)。
systemctl
。 systemdのマニュアルページ。 freedesktop.org。 - レナートポッターリング(2013-10-07)。
systemd.special
。 systemdのマニュアルページ。 freedesktop.org。 - レナートポッターリング(2013-10-07)。
bootup
。 systemdのマニュアルページ。 freedesktop.org。 - ジョナサンデボインポラード(2018)。
init
。 noshガイド 。ソフトウェア。