我应该在Linux机器上更新内核吗?

据我所知,更新到一个新的内核(与正常的linux-image...包,而不是自己滚动)需要重新启动服务器。

但是,我们的一台服务器(Ubuntu 10.04)正在运行几个大型的screen会话。 重新开始杀死那些永远是主要麻烦的东西(主要是因为失去了会话历史)。

我该怎么办? 我看到了几个可能性:

  • 不做任何事情,那只更新非内核包(可能使用apt-pinning?)
  • 更新内核,但不能重新启动。 (这是否聪明?我似乎记得加载内核模块可能有一些问题。)
  • 更新内核并重新启动。
    • 有没有什么办法可以保留screen会议?

我想最终归结为这个问题: 更新内核有多重要?

我在这里发布这个问题,而不是askubuntu.com,因为我认为这不是一个特定于Ubuntu的问题,虽然这个服务器运行Ubuntu。

  • 如何查看专用服务器上的init脚本输出?
  • 使用OpenVPN连接两个networking
  • 从控制台发送优先邮件
  • VirtualBox - 专用服务器上Debian Guest的公共静态IP
  • 在调整文件系统大小之后,令人惊讶的腐败和永无止境的fsck
  • VNC服务器为无头的Debian框?
  • 4 Solutions collect form web for “我应该在Linux机器上更新内核吗?”

    在使用ksplice进行内核更新后,您可以避免重新启动。 除此之外,还没有一个通用的规则来回答这个问题是否真的有必要,因为这取决于很多因素:

    • 修补程序修复的错误的性质 许多更新仅针对某些模块,硬件驱动程序或平台,或者涉及您的系统中不会发生的情况。
    • 您运行的系统types:它提供了哪些服务?它是如何连接的?您的用户是否值得信任(对于可能的用户权限提升错误)?
    • 触发时会有什么影响? 它会破坏文件,或让每个人都成为root或将一些未使用的子系统停止工作?

    最终,只有您可以决定某个更新是否足够重要以保证重新启动,但当然这是一条经验法则: 如有疑问,请更新。

    我认为保持系统更新以修复漏洞是值得的,但我不会只更新内核来更新它。 如果你更新内核,我肯定会重新启动。 当你运行更新时,它会更新引导加载程序,所以下次重新引导时,它将会加载内核(除非你事先修改它)。 由于电源事件或某人滥用sudo而导致服务器重新启动,因为您需要为新内核重新编译某些内容,因此只能find关键应用程序无法运行,这将不是好日子。

    我认为系统需要以允许更新和重新启动的方式运行。 如果你有一堆需要用户在屏幕上启动服务的应用程序,那么你没有一个非常健壮的系统。 我会努力弄清楚为什么这些屏幕会话存在,如果他们真的是需要从初始化开始,或者如果他们是因为有人懒惰。

    当内核更新来自主要供应商时,通常可以认为它将包含安全补丁。 有时这些补丁适用于你,有时它们不适用。 在决定是安装更新还是closures时,确实需要查看供应商的发行说明,以确定发生了什么变化。 只有这样,你才能开始决定什么是或不适用于你。

    在一般情况下,我总是build议定期运行自动更新。 为此,你应该采取以下措施。

    • 指定一个常设维护窗口,例如每个星期六的0000-0200小时。
    • 在此期间执行所有更新。
    • 如果需要更新,请重新启动系统。

    当然,你是如何完成像这样的安排/批准/不pipe什么依赖于你的组织的时间表的过程。 无论如何,请务必公布您的日程安排,以便所有用户都能知道该期待什么,并坚持下去。 发布一个时间表,然后不遵循它甚至比没有一个更糟。

    如何安装和重新启动系统取决于您,但我build议尽可能自动化。 这样你就不用担心忘记更新,如果用户抱怨,你总是可以回头告诉他们,“不,我没有看到你在系统上工作,这是一个常设的窗口,你知道重启可能会自动发生。“

    只是要警惕如何提出需求,以及发生这种情况如何对用户做出反应。 你想要的最后一件事是出现BOFH式的。

    我想你应该/想象一下,你只是继续升级内核。 稍后你会看到有多less用户屏幕会话真的抱怨。 我的意思是你是不是根? 告诉他们谁在控制。

    服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.