Linuxカーネルのシステムシャットダウンは内部でどのように機能しますか?
システムのシャットダウン時に、ユーザー空間とinit-system(従来のinit sysV / upstart / systemdである)がどのように機能するかについての大まかな考えがあります。(本質的には、「Stop!」、「本当に今すぐ停止してください」、「停止するためにあなたを殺す必要があるプロセス」の順番の連続があり、待っています...事が起こっています)。 私はとにかくカーネルでシステムのシャットダウンがどのように機能するのか非常に知りません(確かに多くのこともあります)? 私は、カーネルのドキュメントに見てみましたhttps://www.kernel.org/doc/htmldocs/も使用NSAのPAL検索ツールを私にそれがどのように動作するかを見つけ出すのヘッドスタートを与えます。 また、SE U + Lを検索しても何も見つかりませんでした(見落としていませんか?) とにかく、質問は少し難しいかもしれませんが、シャットダウン時にLinuxカーネルで何が起こるかについてより多くの人が興味を持っていると思うので、このQ&Aネットワークでは答えに値します。 さらに詳細な説明にリンクする変更もある可能性があります。 答えには、どのシステムコールとどのカーネル信号が使用されているかが含まれる場合がありますか? https://github.com/torvalds/linux/blob/b3a3a9c441e2c8f6b6760de9331023a7906a4ac6/arch/x86/kernel/reboot.c はリブートに関連するx86使用ファイルのようです(すでにシャットダウンに近いですか?) ここにあるスニペットhttp://lxr.free-electrons.com/source/kernel/reboot.c#L176 を使用して説明することができます 176 void kernel_power_off(void) 177 { 178 kernel_shutdown_prepare(SYSTEM_POWER_OFF); 179 if(pm_power_off_prepare) 180 pm_power_off_prepare(); 181 migrate_to_reboot_cpu(); 182 syscore_shutdown(); 183 pr_emerg( "Power down \ n"); 184 kmsg_dump(KMSG_DUMP_POWEROFF); 185 machine_power_off(); 186} 187 EXPORT_SYMBOL_GPL(kernel_power_off);