我在几台没有 GUI 的机器上使用 CentOS 和 Red Hat Enterprise Linux。如何检查最近安装的更新是否需要重新启动?在 Ubuntu 中,我习惯检查是否/var/run/reboot-required
存在。
答案1
https://access.redhat.com/discussions/3106621#comment-1196821
不要忘记,您可能需要因为核心库更新而重新启动,至少如果它是 glibc 的话。(此外,更新后可能需要重新启动服务)。
如果您安装了该
yum-utils
包,您可以使用名为的命令needs-restarting
。您可以使用它来检查是否由于内核或核心库更新而需要完全重启(使用选项
-r
),或者需要重新启动哪些服务(使用选项-s
)。
needs-restarting -r
0
如果不需要重新启动则返回,1
如果需要,则返回,因此它非常适合在脚本中使用。一个例子:
root@server1:~> needs-restarting -r ; echo $?
Core libraries or services have been updated:
openssl-libs -> 1:1.0.1e-60.el7_3.1
systemd -> 219-30.el7_3.9
Reboot is required to ensure that your system benefits from these updates.
More information:
https://access.redhat.com/solutions/27943
1
答案2
关于比较已安装的内核与正在运行的内核:
#!/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
希望有帮助!
答案3
您可以将 uname -a 的输出与已安装的内核包列表进行比较
答案4
uname -a
rpm -q kernel
与needs-restarting
……相比yum-utils