Linux 相对于 Windows 的一个优点是,Linux 服务器不需要一直重启,但我们的 Ubuntu 服务器似乎在安装每周(如果不是每天)更新后总是要重启。这是怎么回事?这只是 Ubuntu 的问题,还是现在所有发行版都是这样,因为安全问题已经成为一个更大的问题?
Welcome to Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-72-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
6 packages can be updated.
0 updates are security updates.
*** System restart required ***
答案1
如果无法以有意义的方式重新启动受影响的组件,Ubuntu 将建议在更新后重新启动。
简而言之:
编辑器或命令行工具之类的东西不需要任何形式的重新启动,它们只是被替换了。
像 Web 服务器这样的服务可能需要自行重新启动。
其他影响一切的东西,比如内核或核心,
libc
将需要重新启动,因为它们不能在正在运行的系统中轻易被替换(注意:ksplice
存在允许修补正在运行的内核中的某些东西的东西)。
但即使没有内核更新,ksplice
您也不必在每种情况下都严格重新启动系统 - 您必须仔细阅读更新说明以检查您是否受到已修复的错误的影响 - 如果没有,通常可以安全地忽略它直到下一次更新或定期维护周期。
答案2
您可以检查 var/run/reboot-required.pkgs 来检查哪些软件包最近安装并且需要重新启动才能完全应用 - 通常是内核软件包。
答案3
当您升级一个包时,该包的旧版本可能仍会被加载到内存中。
在某些情况下,如果包含该服务的软件包或该服务使用的库已升级,则可以重新启动服务,但对于 libc 或内核等软件包,则需要重新启动。内核在启动期间加载,而典型的 ubuntu 系统中的大多数程序都使用 libc。
是否需要重新启动取决于您升级的内容以及升级的原因。