需要重新启动 Ubuntu Web 服务器而不应用更新

需要重新启动 Ubuntu Web 服务器而不应用更新

我有一个 Web 服务器,在重启后无法呈现我们的主站点。我认为这与重启时应用的更新有关。

我可以在不应用更新的情况下重新启动 Ubuntu 吗?

答案1

在您执行了apt-get upgrade类似操作并升级了一些软件包之后,没有简单的方法可以让旧版本的文件在重启后继续存在。您可以尝试使用软件包并恢复其旧版本;从技术上讲,这不会恢复旧文件本身,而是会创建具有相同内容的新文件。

重启期间的“应用更新”可能与您想象的不同。

Linux 和基于 inode 的文件系统的工作方式允许用新版本替换任何文件,而旧版本仍在使用中。任何在更新发生之前打开过旧版本的进程都可以使用旧版本,直到该进程关闭该文件。如果没有其他路径(硬链接)指向旧文件,则其内容将仅保留在文件系统中,直到不再使用,尽管文件系统本身不再提供指向旧内容的路径(但操作系统可能)。

因此,更新(或,就术语而言apt-get:升级)可以在正在运行的系统内完成。这很常见。与 Windows 方式相比,除非操作系统尚未(或不再)完全运行,否则某些文件会被锁定。在 Linux 中,如果您只想在足够智能的文件系统中替换文件,则无需重新启动。

请注意,“替换文件系统内的文件”与“让进程使用新文件”不同。

要使进程使用新文件,需要它们打开指向新版本的描述符。我不知道有什么安全的方法可以强制“重新映射”描述符,除非进程配合并重新打开文件(例如,它跟踪文件名,如,tail --follow=name或根据需要重新打开)。此外,可执行文件本身可能已更新。

通常,“切换”守护进程到新文件的最佳方式是重新启动它。一些升级脚本会重新启动一些守护进程。另一方面,仅重新启动正在运行的操作系统的某些部分可能会很麻烦或不可能(请参阅Linux 服务器如何在不重启的情况下更新内核)。

这就是您可能会收到“需要重启系统”的原因。请注意,重启期间不会进行更新。发生的情况是,旧版本在关闭阶段变为“未使用”,然后文件系统知道它可以将它们视为不存在并重新使用空间。重启只是一种确保一切使用已经存在的更新文件。

答案2

在大多数 Ubuntu 配置中,重新启动时默认不会应用更新(与 Windows 相反)。除非你特意安装并配置了自动更新软件,否则 Ubuntu 不会自动更新。您的 Web 服务器配置可能还存在其他错误。

相关内容