logind.conf `IdleAction = kexec`は正確に何をしますか?

logind.conf `IdleAction = kexec`は正確に何をしますか?

これlogind.conf のマニュアルページ説明する:

アイドル動作=

システムがアイドル状態のときに実行するアクションを設定します。 「無視」、「電源オフ」、「再開」、「停止」、「kexec」、「一時停止」、「休止状態」、「ハイブリッド省電力」、「一時停止後の休止状態」、「ロック」のいずれかを選択してください。デフォルトは「無視」です。

この値がどこでも説明されているのを見たことはありませんkexec。ここで何が起こっているのでしょうかkexec

これに相当するものはありますか?kexec(8)コマンドラインで実行されますか?

システムがアイドル状態の間に新しいカーネルでホットリブートすることは、どのような状況で役に立ちますか?

ベストアンサー1

はい、新しいカーネルから起動するkexecために使用できるコマンドラインツールがあります。kexec

ユーザーの観点から、現在のカーネルが新しいカーネルをロードして実行を開始するため(BIOS、ファームウェア、ブートローダなどをバイパス)、より速い傾向があることを除いて、使用はほとんど使用されていませkexecん。reboot

「kexec」(または「再起動」)などのアイドル操作を提供するためにログインする目的は、システムを常に最新の状態に保つことです。カーネルのアップグレードにはしばしば再起動が必要です。アイドル検出は見つけるのに役立ちます。いつ今はシステムを再起動するのに良い時期であり(邪魔にならないとき)、システムを頻繁に再起動すると(十分に頻繁にアイドル状態であると仮定)、すぐに新しいカーネルで起動できます。管理者はアップデートパッケージマネージャをインストールします。

もちろん、すべてのユーザーがこの設定に同意するわけではないので、このオプションのデフォルトではありません(デフォルトは「無視」であり、何もしません...)。


このタスクが正確に何を引き起こしたのかを理解するには、kexec次の点を見てください。systemctl kexec、そして並列systemctl reboot。その文書には次のように記載されています。

システムをシャットダウンして再起動します。プログラムの実行。これは次のとおりです。systemctl start kexec.target --job-mode=replace-irreversible --no-block

だから特別な過程を経なければならないのにkexec.target、通常は次のように構成されます。必要systemd-kexec.service、その後着信電話/usr/lib/systemd/systemd-shutdownパラメータを持つツール(kexecによってsystemctl --force kexec明らかになりました...)

さらに一歩進むには、ソースコードを見てください。これが簡単でsystemd-shutdown kexecあることがわかります。以下を使用して再起動してください。kexec -eそして失敗した場合、論理は「通常の」再起動に戻ります。

見ているケプセク(8)kexec -eマニュアルページを見ると、必要なものすべてを見ることができます実装するkexec が再起動されます。これがシステム統合のすべてです。

不足している別の部分は、ブートカーネルをメモリにロードする部分、つまりkexec -l実際の実行が正常に動作するように実行する部分です。これは従うべき別のウサギの穴です。私はこれを読者のための練習として提案したいと思います(またはU&Lにぴったりの別の質問かもしれません!)

おすすめ記事