为什么需要重新启动服务器?

为什么需要重新启动服务器?

当我登录到我的 Ubuntu 实例时,我收到消息*** System restart required ***。我正在运行服务器,正常运行时间对我来说非常重要。

我如何知道为什么需要重启?我已经设置了自动安全更新,我怀疑其中一个更新需要重启。如果更新的软件与我的设置相关,我只想重启服务器。

答案1

任何数量的不同更新都可能需要您重新启动。

  • 内核升级
  • 一些核心 C/C++ 库更改
  • 需要重新启动才能应用的更新,以完全关闭受影响的服务代码(该代码是核心操作系统的一部分)
  • 安全团队建议重新启动以修复某些未定义的库更新(例如最新的 glibc 漏洞或某些 SSL 库更新)

不幸的是,您无法确切地说出是什么原因导致您的系统提示需要重新启动,因为需要重新启动的潜在原因有很多。

答案2

检查 /var/log/dpkg.log 的内容,查看最近安装了哪些软件包。已经修补了许多内核和 openssl/openssh/etc 漏洞,并且任何已在运行的服务都会将旧库的副本加载到内存中,并且它们将一直存在漏洞,直到您手动重新启动受影响的服务,或者您只是重新启动主机。如果升级的软件包是内核软件包(linux-image 等),那么重新启动是让新内核运行的唯一方法。

sudo zgrep -h 'status installed' /var/log/dpkg.log* | sort | tail -n 100

将显示主机上安装的最后 100 个软件包。您可以自行决定是否要重新启动它。

我相信您可以向 unattended-upgrades 包添加一个设置,让其在更新完成后自动重启。如果您可以将升级设置为在凌晨 3 点进行,此时您知道负载较轻,这种重启的影响可能会很小。

据我所知,无人值守升级只会安装对安全有影响的软件包,因此如果服务器暴露在公共互联网上,我不会推迟重新启动服务器很长时间。

相关内容