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


-3

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

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


更新(或重新启动)本身可能不是唯一的原因。它们可能会引发某些事情,你应该集中精力去发现它是什么。(例如,systemd中的订购周期可能会导致您的操作系统在没有Web服务器需要的情况下启动)。你怀疑服务器会失败,所以很可能这发生在之前而不是一次。那么你在这些时候做了什么修复呢?
Kamil Maciorowski

更新时会应用更新。重新启动只是清洁房子。对于运行更新时已打开的任何内容,更新会影响存储的文件,但不影响内存中的活动文件。下次从磁盘打开它(可以在重新启动后),加载更新的版本。如果更新导致问题,您可以尝试在恢复模式下重新启动以将其回滚,具体取决于更新的更改,但更新已在重新启动之前完成,因此您无法在不应用更新的情况下重新启动。
fixer1234

Answers:


2

在你做apt-get upgrade了类似的事情并升级了一些软件包之后,没有简单的方法可以让旧版本的文件在重启后继续存在。您可以使用包并恢复旧版本; 这在技术上并不会带回旧文件,它会创建具有相同内容的新文件。

重启期间“应用更新”并不是您认为的那样。

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

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

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

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

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

这就是为什么你可能需要“系统重启”。请注意,重新启动期间没有更新。发生的事情是旧版本在关闭阶段变为“未使用”,然后文件系统知道它可以将它们视为不存在并重用该空间。重启只是一种确保一切都使用已经存在的更新文件的坚实方法。


精美的解释。在这种情况下,我会按照建议重新启动服务器,这时我可以安全地执行此操作,并确保每个必需的进程都在运行。
pcgben

-1

在大多数Ubuntu配置中,默认情况下不会在重新引导时应用更新(而不是Windows)。除非您专门安装和配置了自动更新软件,否则Ubuntu不会自动更新。您的Web服务器配置可能存在其他一些错误。


虽然用心良苦,但你真的不应该鼓励这样的帖子。太模糊,太宽泛,无法真正得到帮助。老实说,Ubuntu更新不应该破坏这样的网站。
杰克古尔德

1
感谢您的反馈!我刚开始使用这个网站,所以我还在学习规则。我会留下评论要求澄清,但没有足够的声誉。
Wesley Chalmers

嗯,正如你所知......赚更多的代表,留下这样富有成效的评论,并尽可能发布体面的答案和问题。
杰克古尔德

我感谢你的帮助 - 有时候事情会有点恐慌。问题仍然是“我可以在不应用更新的情况下重启Ubuntu吗?”。我将看一看,看看我是否可以禁用自动更新,因为通过SSH登录时,欢迎消息包括:245包可以更新***系统重启需要***
pcgben
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.