ユーザースペースのみを再起動できますか?カーネルの前のすべてを終了し、PID 1で再起動するのと同じですか?
私のルートbtrfsファイルシステムのスナップショットを作成し、そのスナップショットですばやく起動したいと思います。
ベストアンサー1
macOSの機能に触発された可能性があります。この機能はlaunchctl reboot userspace
残念ながら欠けていますが(自己再起動を使用できますが、これがすべてのサブキーを終了するわけではありません)、Linuxカーネルの機能を使用すると、macOSよりも優れた結果が得られます。systemd
systemd
systemctl daemon-reexec
reboot userspace
kexec
これは、すべてのユーザースペースプロセスとすべてのカーネルスレッドを終了してから、現在ロードされている(ユーザーが指定した待機まで含む)カーネルを再起動することです。これは、ブートローダが初期化をカーネルに渡す瞬間から効果的に始まります。必要なハードウェアリセット手順を開始します。 。
kexec(8)
マニュアルページから:
DESCRIPTION
kexec is a system call that enables you to load and boot into another
kernel from the currently running kernel. kexec performs the function
of the boot loader from within the kernel. The primary difference be‐
tween a standard system boot and a kexec boot is that the hardware ini‐
tialization normally performed by the BIOS or firmware (depending on
architecture) is not performed during a kexec boot. This has the effect
of reducing the time required for a reboot.
一つあるルビースクリプトkexec
kexecパラメータを学びたくない場合は、使用を簡素化し、grub設定ファイルを解析して別のカーネルを選択することもできますが、Fedoraの新機能を理解していないようです。ブートローダ仕様kexec
この場合は、基本ツールを使用して作業を実行する必要があります。
ちなみに、EFIのUbuntu 22.04でkexec-rebootを実行した結果は次のとおりです。
$ sudo kexec-reboot -iv
Read GRUB configuration from /boot/grub/grub.cfg
Select a kernel to stage:
1: Ubuntu
2: Ubuntu, with Linux 5.19.0-35-generic
3: Ubuntu, with Linux 5.19.0-35-generic (recovery mode)
4: Ubuntu, with Linux 5.15.0-67-generic
5: Ubuntu, with Linux 5.15.0-67-generic (recovery mode)
6: Ubuntu, with Linux 5.15.0-58-generic
7: Ubuntu, with Linux 5.15.0-58-generic (recovery mode)
Your selection: 1
Staging Ubuntu
Staging kernel Ubuntu
Unloading previous kexec target, if any
Running /sbin/kexec -l /boot/vmlinuz-5.19.0-35-generic
--append='root=UUID=9e994b93-047b-46a6-9a71-51dfcb4e9598 ro intel_iommu=on iommu=pt
i915.enable_gvt=1 zswap.enabled=1 zswap.compressor=zstd resume=/dev/disk/by-
uuid/01b394fe-b29e-499c-a722-5f8d56cec3cd quiet splash $vt_handoff' --initrd=/boot
/initrd.img-5.19.0-35-generic
-r
再起動中に追加
API呼び出し自体は次のように言います。ファイルシステムがマウント解除されていません。ただし、kexecツールはシステムの再起動を引いたシャットダウンシーケンスを呼び出してファイルシステムを同期するように見えるため、サービスとプロセスが正常に終了するように正常に終了する必要があります。