我有一个Web服务器,重新启动时无法呈现我们的主站点。我认为这与重新启动时应用的更新有关。
我可以在不应用更新的情况下重启Ubuntu吗?
我有一个Web服务器,重新启动时无法呈现我们的主站点。我认为这与重新启动时应用的更新有关。
我可以在不应用更新的情况下重启Ubuntu吗?
Answers:
在你做apt-get upgrade了类似的事情并升级了一些软件包之后,没有简单的方法可以让旧版本的文件在重启后继续存在。您可以使用包并恢复旧版本; 这在技术上并不会带回旧文件,它会创建具有相同内容的新文件。
重启期间“应用更新”并不是您认为的那样。
Linux和基于inode的文件系统的工作方式允许用新版本替换任何文件,而旧版本仍在使用中。旧版本可用于在更新发生之前打开它的任何进程,直到进程关闭文件。如果没有其他路径(硬链接)通向旧文件,则其内容将仅保留在文件系统中,直到它不再使用,尽管文件系统本身不再提供旧内容的路径(但OS可能)。
出于这个原因,apt-get可以在正在运行的系统内完成更新(或者,根据:升级)。这很常见。与Windows方式相比,某些文件被锁定,除非操作系统尚未(或不再)完全运行。在Linux中,如果您只想替换足够智能的文件系统中的文件,则无需重新启动。
注意“替换文件系统中的文件”与“使进程使用新文件”不同。
使进程使用新文件需要它们打开导致新版本的描述符。我不知道强制“重新映射”描述符的任何安全方法,除非进程合作并重新打开文件(例如,它跟踪文件名tail --follow=name,或者根据需要重新打开)。此外,可执行文件本身可能已更新。
通常,将守护程序“切换”到新文件的最佳方法是重新启动它。某些升级脚本会重新启动某些守护程序。另一方面,仅重新启动正在运行的操作系统的某些部分可能很麻烦或不可能(请参阅Linux服务器如何在不重新启动的情况下更新其内核)。
这就是为什么你可能需要“系统重启”。请注意,重新启动期间没有更新。发生的事情是旧版本在关闭阶段变为“未使用”,然后文件系统知道它可以将它们视为不存在并重用该空间。重启只是一种确保一切都使用已经存在的更新文件的坚实方法。
在大多数Ubuntu配置中,默认情况下不会在重新引导时应用更新(而不是Windows)。除非您专门安装和配置了自动更新软件,否则Ubuntu不会自动更新。您的Web服务器配置可能存在其他一些错误。