本文所述内容具有依赖性,可能因软硬条件不同而与预期有所差异,故请以实际为准,仅供参考。
最近一段时间通过 SSH 登录 Ubuntu 系统 VPS,有时提示 *** System Restart Required ***
,即便重启了,过一段时间又出现这个提示,而实际上在这期间并没有对系统进行过任何操作。
问题分析
出现 *** System Restart Required ***
这个提示,说明存在 /var/run/reboot-required
文件,Ubuntu 软件包可以在安装时通过 postinst
创建该文件触发重启指令。
一般来讲,安装后需要重启的,大多是内核,或者安全补丁,可以查看文件 /var/run/reboot-required.pkgs
来确认:
可以看到 /var/run/reboot-required.pkgs
存在(正常不存在),且记录了是 linux-base
和 linux-image-4.15.0-54-generic
引起的,说明本次问题的原因是系统自动更新
了内核或补丁。
常规解决方法
内核或补丁更新需要重启,这是肯定的,执行重启命令来应用内核或补丁:
如果不想重启也不想在登录时看到*** System Restart Required ***
,可以直接删除重启指令文件 /var/run/reboot-required
:
但是还是建议先看下是什么软件包引起的,根据实际情况决定是否重启。
关闭自动更新的解决方法
上面两个方法只是解决本次*** System Restart Required ***
问题,过段时间在系统自动更新作用下,可能又会再次出现,因此我们可以屏蔽内核自动更新:
可能有人会说屏蔽自动更新不够安全,实际上对于生产环境来说,自动更新是危险的行为,你可能永远无法知道自动更新执行了什么命令,会对生产环境产生什么影响。
可以执行下列命令重新启用内核自动更新:
新版的 Ubuntu 采用了 snap
套件管理工具,也会不定期 ubuntu repository
更新,故而还需禁用 snap:
屏蔽后,登录 SSH 可能会出现如下提示,忽略即可:
转自:https://vircloud.net/operations/fix-ubuntu-restart.html
参考文章:
1、《*** System Restart Required *** – Automated Linux Kernel Patches》
2、《Ubuntu 上 apt 的 unattended-upgrades 自動更新》