如何判断 FreeBSD 主机是否需要重新启动才能激活新内核?

Tom*_*ime 5 freebsd

“uname”会告诉我正在运行的内核的版本。我如何知道这是否与已安装的内核(即下次重新启动时加载的内核)不同?

理想情况下,我想编写一个可以输出“需要重新启动”或“运行和安装的内核匹配”的脚本。

小智 3

使用freebsd-version -k!从它的手册来看:

-k 打印已安装内核的版本和补丁级别。与 uname(1) 不同,如果安装了新内核但系统尚未重新启动,freebsd-version 将打印新内核的版本和补丁级别。

您应该比较freebsd-version -k和的输出uname -r,如果不同则应该比较reboot

另一种选择是使用strings(想法取自/bin/freebsd-version):

strings /boot/kernel/kernel | sed -n "s,^@(#)FreeBSD \([^ ]*\).*,\1,p"
Run Code Online (Sandbox Code Playgroud)