systemd/initが存在しない場合(例:init = / bin / bashを使用)、電源を切る方法は?

systemd/initが存在しない場合(例:init = / bin / bashを使用)、電源を切る方法は?

poweroffDBusを介してsystemdに接続できないと文句を言います(もちろん存在しません)。その後、pid 1が死ぬとカーネルの電源が切れると思ってsync実行しましたが、これによりカーネルパニックが発生しました。kill $$その後、電源ボタンを押して電源を強制的にオフにします。

この状況で最も正しい終了方法は何ですか?

答え1

単に次の2つのコマンドを実行します。

echo s > /proc/sysrq-trigger    <= For sync
echo o > /proc/sysrq-trigger    <= For shutdown the system

カーネルでマジックキーが有効になっていると仮定

答え2

マウントされたファイルシステムをマウント解除します。ルートファイルシステムは特別なケースです。mount / -o remount,roLinuxではumount /以前のコマンドに効果的に変換されるため、この方法も機能します。


つまり、除去についてあまり心配する必要はありません。

  1. FAT(EFIシステムパーティションで使用)またはext2など、ロギングや同等の機能を実装しない古いファイルシステムをインストールしました。最新のファイルシステムではsyncこれで十分で、ファイルシステムは次回の起動時にすぐに自己修復されます。
  2. 実行中のプロセスをファイルシステムに書き込み、完全にシャットダウンしようとすることができます。この場合、ファイルシステムをマウント解除しようとすると便利です。これは、マウント解除に失敗し、残りのライターについて通知する忙しいエラーが発生するためです。

上記は重要な部分です。後で便利にハードウェアの電源を切ることもできますpoweroff -f。またはrestartを使用してくださいreboot -f

systemd特定の対応する項目がありますpoweroff -fsystemctl poweroff -f -fただし、poweroff -fこれは同じことを行い、systemdSysV互換性なしでビルドしてもこのコマンドはサポートされます。


技術的には、USBハードドライブにWindowsの「安全な取り外し」または同等の機能が必要であると記録されていることを覚えておいてください。ただし、この要件は安全ではなく、Linuxは通常のシャットダウン中にこれを実行しません。より良い説明は、ハードドライブが回転している間にプラグを抜こうとすることを含む、ハードドライブを軽く押してはいけません。電源を完全に切ると、ドライブの回転が停止します。止まらないか聞いて、感じて、見ることができます。 :-).

答え3

実際にあなたが電話したいこと再起動(2)システムコール。

これを行う方法は2つあります。

  1. runreboot -fまたはpoweroff -f、直接呼び出す必要がありますreboot(2)

  2. 実際のLinux仮想端末(GUI端末エミュレータではない)を使用している場合は、Ctrl+ Alt+を押しますDelete

一部のユーザー空間プログラム(通常はinit)はキーボードショートカットを無効にすることができ、無効にするとinitに信号を送信します。

すべてのディスクをアンマウントするか、読み取り専用で再マウントして同期を実行した後、上記のすべてのコマンドを完了する必要があります。そうしないと、記録されていないデータが失われる可能性があります。シェルが唯一の実行中のプロセスである場合は、同期で十分です。

答え4

Magic SysRqキー(https://en.wikipedia.org/wiki/Magic_SysRq_key) コンピュータの電源を切ります。

正しく終了するには、次のコマンドを使用できます(Wikipediaから引用)。

SysRqマジックキーの一般的な用途は、ロックされたLinuxコンピュータのセキュリティ再起動(略語)を実行することです。リース)。これにより、fsck再起動する必要がなくなり、一部のプログラムに保存されていないジョブの緊急バックアップを保存する機会が提供されます。[5]  QWERTY(またはAZERTY)ニーモニック: "エシアン第二SSああゆうテリー生地第二オリン「、」電子案内第二FSシステムゆうテリー生地第二roken」または単に「BUSIER」という単語を上下に読むと、次のSysRqキーシーケンスを記憶するためによく使用されます。

  • un Raw(Xでキーボードコントロールを取り戻す)、
  • t Erminate(すべてのプロセスにSIGTERMを送信して正常に終了することを許可)
  • k Ill(すべてのプロセスにSIGKILLを送信してすぐに終了するようにする)、
  • S同期(データをディスクにフラッシュ)、
  • Unmount(すべてのファイルシステムを読み取り専用で再マウント)、
  • 再起動B

しかし、最後のBを次に置き換えます。酸素(azerty/qwerty用)「Power」用酸素「FF」

関連情報