CentOSとcPanel(最新バージョン)を実行するサーバーを実行していますが、yumを使用して自動的に更新するように設定しています。カーネルを更新するために再起動する必要があるので(そしておそらく他のものも)、再起動が必要かどうかを判断する方法があるかどうか疑問に思っていましたか?
編集:サーバーはVPSであり、OpenVZで実行されています。 OpenVZが機能する方法のため、/boot/vmlinuz
はなく、yum list installed kernel
も機能しません。
ServerFaultの this answer から次の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
まず、実行中のカーネルバージョンを出力します。
#uname -r 2.6.32-71.29.1.el6.i686 OK、パッチを当てる必要があります: #yum update kernel * kexecツールを取得: #yum install kexec-tools 次に、最後にインストールされたカーネルバージョンのリリースを取得し、var: #latestkernel = `ls -t/boot/vmlinuz- * |に置きます。 sed "s/\/boot \/vmlinuz-// g" | head -n1` #echo $ 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 。 .and ..わあ、システムを失った! ..まあ、正確ではない。 システムは「再起動せずに再起動」します。BIOSチェックを実行せずに高速再起動のようなものです(そして、システム全体が最後に再起動できる時間はわかっています) 。 #uname -r 2.6.32-220.4.1.el6.i686
出来た!