再起動時とsystemd-logind時のシステムシャットダウン実装の比較

再起動時とsystemd-logind時のシステムシャットダウン実装の比較

この質問は好奇心から出てきた質問でもあるが、自分自身も明快な答えを見つけることができず、出てきた質問でもある。

私が読んでこの答えは、カーネルがシステムをシャットダウンする方法を説明します。。全体的にかなり明確だと思います。reboot.cLXRでコードを確認してください。kernel_power_offその機能は restart.c にあります。好奇心が刺激されました。残念ながら、LXRが場所を見つけるのに苦労しているようです。機械関連コード~のためmachine_power_off、この機能が何をするのか、どうするのかよくわかりません。

問題は機能定義通常、machine_power_off特定のクラスのマシン(または製造元)に固有のいくつかのバイナリブロブ(おそらく独自のファームウェア?)に基づいていますか、または通常はアセンブラまたはCで書かれていますか?

これで、2014年4月から2021年7月まで急速に進みます。 2014年4月の回答は私には理解されていますが、この回答が用意されて以来多くのことが変更されました。カーネルは数回修正され、systemd多くの/ほとんどのLinuxディストリビューションの基本部分になりました。

私が理解している限り、halt/shutdownは次のように表されます。systemd ログインマネージャー(?!): systemd-logind.service。表示man logind.confと公開、 オプション、および関連タスク - これらのオプション名は類似性を示していますが、明らかに異なります。アップストリーム実装の提案にさらに注意を払ってください。man systemd-logind.serviceHandlePowerKey=HandleLidSwitchExternalPower=poweroffreboot.csystemd-logind用のD-Busインタフェースこれで、システムのシャットダウンに重要な役割を果たします。今この瞬間にも努力しています。「ドットをつなぐ」reboot.csystemd-logind.service

同時に、私のディストリビューションがreboot.cコードを保存しているようです。私のOSでまだ使用されているので、コードが維持されていると仮定すると、systemd別の質問があります。

質問:systemdシステムの電源を切るために使用されたベースオプションは最終的に実行されますかreboot.c?そうでない場合の役割は何ですかreboot.c

ベストアンサー1

おすすめ記事