症状
安装热修补后,你可能会看到看似与升级无关的问题。
- 之前可正常工作的功能在热修补后开始失效。
- 该实例不稳定,且其不稳定现象不一致并难以重现。
- 服务的行为出人意料,或未识别您所做的更改。
这些症状中没有任何内容指向升级,因此在进一步调查之前,值得先排查是否存在待处理的重启。
原因
热修补可以包括内核或核心系统包的更新。 正在运行的系统继续使用上次启动时加载的版本,因此这些更新在重启之前不会生效。
热修补升级脚本会告诉你何时需要重新启动,但它不会为你重启实例。 如果错过了该消息,或推迟重新启动,然后忘记它,则实例以混合状态运行,其中某些组件已更新,其他组件未更新。 在不重新启动的情况下安装更多热补丁会使情况更加严重。
确认问题
-
通过 SSH 连接到管理 shell。 有关详细信息,请参阅“访问管理 shell (SSH)”。
-
检查是否需要重新启动。 仅当系统需要重启时,任一文件才存在。
ls /var/run/reboot-required /var/run/reboot-required.pkgs如果列出任一文件,则需要重新启动。 如果两者都不存在,则命令会对这两个路径都会报告
No such file or directory,这意味着没有挂起的重新启动,并且问题出在别处。 -
如果
/var/run/reboot-required.pkgs存在,可以看到哪些包正在等待系统重启。cat /var/run/reboot-required.pkgs
解决问题
重新启动会使 你的 GitHub Enterprise Server 实例 不可用,因此请提前安排重启,而不是立即执行此操作。
警告
重新启动会中断正在使用该实例的所有用户。 启用维护模式会停止新工作开始,但它不会停止正在运行的工作,因此请等待活动进程在重新启动之前完成。
-
与用户安排维护时段。
-
启用维护模式,然后等待所有活动进程完成。 有关详细信息,请参阅“启用和排定维护模式”。
-
重新启动实例。
sudo reboot -
当实例恢复后,确认当前没有仍处于待处理状态的重启。 现在,这两个文件都应已消失,因此命令会对每个路径都报告
No such file or directory。 这就是所需的结果。ls /var/run/reboot-required /var/run/reboot-required.pkgs -
禁用维护模式并确认原始问题已解决。
防止再次发生
- 当热补丁提示需要重新启动时,请安排重启,并跟踪其直至完成。 你可以选择一个方便的时间,但应在条件允许时尽快重启,尤其是在热补丁包含安全修复的情况下。 有关详细信息,请参阅“使用热补丁升级”。
- 当需要重启时,请勿连续安装多个热补丁,因为实例会进一步偏离更新所预期的状态。
- 在升级后检查过程中检查挂起的重新启动,以便在用户发现之前先发现该问题。
联系 GitHub 支持
如果在重新启动后问题仍然存在,或者不确定这些步骤中的任何一项,请联系 GitHub 支持,不要继续操作。 有关详细信息,请参阅“创建支持工单”。
如果已打开支持工单,附加支持包有助于 GitHub 支持 更快地诊断问题。 有关详细信息,请参阅“向GitHub支持提供数据”。