「停止コマンドとシャットダウンコマンドの違いは何ですか?」を読んでください。 、私は一般的に、-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はありません プログラム全体。 停止するステートメントを無視します またはrebootshutdownを呼び出す コマンドライン引数を使用したプログラム。それらは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()を呼び出してみてください 直接。通常は、ターゲットを分離しようとするだけです。 -
telinitinitと同じではありません 。これらは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ガイド 。ソフトウェア。