最近换了个VPS,每隔几天ssh上去的时候就看到 *** System Restart Required *** 这个提示,作为一个强迫症,每次都会去重启服务器。虽然是台VPS,但每次重启都意味目前正常运行的服务可能出现异常。
问题原因
出现这个提示说明服务器有自动更新,然后自动更新后需要重启。
首先,来看看哪些些更新后需要重启,可以查看 /var/run/reboot-required.pkgs 来确认
#cat /var/run/reboot-required.pkgslinux-image-5.4.0-54-genericlinux-base
服务器没开启自动更新的情况下没有
/var/run/reboot-required.pkgs这个文件
可以看出系统自动更新了内核需要重启。
解决办法
方案一 停止自动更新
查看自动更新的配置:
#cat /etc/apt/apt.conf.d/20auto-upgradesAPT::Periodic::Update-Package-Lists "1";APT::Periodic::Unattended-Upgrade "1";
配置项含义:
Update-Package-Lists配置项表示每隔1天执行apt updateUnattended-Upgrade配置项表示每隔1天执行apt upgrade
如果需要停止自动更新,把1改成0就可以来了
改成0后重启服务器,
/var/run/reboot-required.pkgs文件就消失了
方案二 对特定包排除自动更新
使用apt-mark来屏蔽内核自动更新
#apt-mark hold linux-base linux-image-generic linux-headers-generic
讨论
要不要开启自动更新,可能有人会觉得屏蔽自动更新不能及时更新安全补丁不够安全,实际上对于运行业务对服务器来说,自动更新是危险的行为,无法知道自动更新执行了什么命令,会产生什么影响。
