ユーザースペースのみを再起動

ユーザースペースのみを再起動

ユーザースペースのみを再起動できますか?カーネルの前のすべてを終了し、PID 1で再起動するのと同じですか?

私のルートbtrfsファイルシステムのスナップショットを作成し、そのスナップショットですばやく起動したいと思います。

ベストアンサー1

macOSの機能に触発された可能性があります。この機能はlaunchctl reboot userspace残念ながら欠けていますが(自己再起動を使用できますが、これがすべてのサブキーを終了するわけではありません)、Linuxカーネルの機能を使用すると、macOSよりも優れた結果が得られます。systemdsystemdsystemctl daemon-reexecreboot userspacekexec

これは、すべてのユーザースペースプロセスとすべてのカーネルスレッドを終了してから、現在ロードされている(ユーザーが指定した待機まで含む)カーネルを再起動することです。これは、ブートローダが初期化をカーネルに渡す瞬間から効果的に始まります。必要なハードウェアリセット手順を開始します。 。

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.

一つあるルビースクリプトkexeckexecパラメータを学びたくない場合は、使用を簡素化し、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ツールはシステムの再起動を引いたシャットダウンシーケンスを呼び出してファイルシステムを同期するように見えるため、サービスとプロセスが正常に終了するように正常に終了する必要があります。

おすすめ記事