カーネルを更新するには再起動が必要ですか?

カーネルを更新するには再起動が必要ですか?

CentOSでcPanel(最新バージョン)を実行しているサーバーを実行しており、yumを使用して自動的に更新されるように設定しました。カーネル(およびその他)を更新するには再起動が必要なので、再起動が必要かどうかを確認する方法があるかどうか疑問に思います。

編集する:サーバーはOpenVZ上で動作するVPSです。 OpenVZの仕組みのため、どちらも機能/boot/vmlinuzしませんyum list installed kernel

答え1

次のbashスクリプトを試すことができますこの回答サーバー障害のため。

#!/bin/bash
LAST_KERNEL=$(rpm -q --last kernel | perl -pe 's/^kernel-(\S+).*/$1/' | head -1)
CURRENT_KERNEL=$(uname -r)

test $LAST_KERNEL = $CURRENT_KERNEL || echo REBOOT

答え2

まず、実行中のカーネルバージョンを印刷します。

#uname -r
2.6.32-71.29.1.el6.i686

いいですね。以下をパッチする必要があります。

#ヤムアップデートカーネル*

kexecツールをダウンロードしてください。

# yum インストール kexec-tools

最後にインストールされたカーネルのバージョンをインポートし、varに入れます。

#latestkernel=`ls -t /boot/vmlinuz-* | sed "s/\/boot\/vmlinuz-//g"|head-n1`

# エコ $latestkernel
2.6.32-220.4.1.el6.i686

これで、新しいカーネルバージョンをメモリにロードする必要があります。

#kexec -l /boot/vmlinuz-${latestkernel} --initrd=/boot/initramfs-${latestkernel}.img --append="`cat /proc/cmdline`"

最後にリセットコマンドを実行できます。

#kexec -e

..そして..うわー、システムが消えた! ..まあ、必ずしもそうではありません。

システムは「再起動なしで再起動」されます...BIOSチェックを実行せずに高速リブートに似ています(そしてシステム全体のリブートがどれくらい持続できるかを知っています)。

#uname -r
2.6.32-220.4.1.el6.i686

効率的!

  • カーネルリセットは、接続リセットも実行して同時に稼働時間をリセットするため、セキュリティがパッチされている間に稼働時間の記録を付与することを探している場合は、これは適切ではありません。

関連情報