Ubuntu Server 20.04 上的无人值守升级不起作用,卡在关机/等待信号状态

Ubuntu Server 20.04 上的无人值守升级不起作用,卡在关机/等待信号状态

几个月前我买了一台 VPS,并为其配置了 Ubuntu Server 20.04。据我所知,我没有修改任何系统设置,当然也没有修改任何会影响无人值守升级的东西,因为我确实想要这个。

据我了解,Ubuntu 20.04 默认启用了无人值守升级,因此它每天都会执行 apt update + upgrade 以使系统保持最新状态,而无需用户执行任何操作。

我刚刚发现,在我拥有它的几个月里,它从来没有在我的 VPS 上运行过,所以我的更新已经落后了几个月,我想了解原因。

我查看了 /var/log/apt/history.log.*,其中唯一的条目是我过去几个月运行的明确 apt install 命令。而 /var/log/unattended-upgrades/ 中没有任何内容。

从图中可以看出systemctl status unattended-upgrades.service,它已经等待 TERM 信号 5 个月才开始运行。(见下文)

系统信息:

$ lsb_release --all
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.1 LTS
Release:        20.04
Codename:       focal

$ uname -a
Linux vps-713122 5.4.0-28-generic #32-Ubuntu SMP Wed Apr 22 17:40:10 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

无人值守升级正在运行,但正在等待某件事:

$ sudo systemctl status unattended-upgrades.service
● unattended-upgrades.service - Unattended Upgrades Shutdown
     Loaded: loaded (/lib/systemd/system/unattended-upgrades.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2020-11-12 20:46:13 GMT; 5 months 4 days ago
       Docs: man:unattended-upgrade(8)
   Main PID: 867 (unattended-upgr)
      Tasks: 2 (limit: 1111)
     Memory: 2.5M
     CGroup: /system.slice/unattended-upgrades.service
             └─867 /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal

Nov 12 20:46:13 vps-713122 systemd[1]: Started Unattended Upgrades Shutdown.

190 个软件包已过期:

$ apt list --upgradable | wc -l

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

190

(可升级包示例:#linux-generic/focal-updates,focal-security 5.4.0.72.75 amd64 [可升级自:5.4.0.53.56] Ubuntu 更新日志显示 5.4.0.53.56 的日期为 2020 年 10 月。此后已有十几次更新,最近一次是 4 月 12 日。)

此时,我手动运行“apt upgrade”来更新我的软件包,然后重新启动服务器。当我检查无人值守升级时,它仍然卡住:

$ sudo systemctl status unattended-upgrades.service
● unattended-upgrades.service - Unattended Upgrades Shutdown
     Loaded: loaded (/lib/systemd/system/unattended-upgrades.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2021-04-18 21:23:29 BST; 5min ago
       Docs: man:unattended-upgrade(8)
   Main PID: 513 (unattended-upgr)
      Tasks: 2 (limit: 1110)
     Memory: 10.3M
     CGroup: /system.slice/unattended-upgrades.service
             └─513 /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal

Apr 18 21:23:29 vps-713122 systemd[1]: Started Unattended Upgrades Shutdown.

答案1

我明白了。根据https://ubuntu.com/server/docs/package-management, “要启用自动更新,请编辑 /etc/apt/apt.conf.d/20auto-upgrades 并设置适当的 apt 配置选项”。

我的系统上不存在此文件。为什么?我不确定。也许我的云提供商修改了他们用于配置的 Ubuntu Server 20.04 映像。也许这是以前版本的无人值守升级包中的一个错误。也许我被黑客入侵了,他们删除了它。我没有足够的动力去调查它。

因此解决方案是创建该文件。两个简单的选项:

  1. 从默认文件复制:sudo cp /usr/share/unattended-upgrades/20auto-upgrades /etc/apt/apt.conf.d/20auto-upgrades
  2. sudo apt purge unattended-upgrades(警告:这将覆盖所有现有的 unattended-upgrades 配置文件)执行后,重新安装该软件包sudo apt install unattended-upgrades。确认文件 /etc/apt/apt.conf.d/20auto-upgrades 现已存在。

为了安全起见,我选择了 #2。

答案2

包配置

            ┌────┤ Daemons using outdated libraries ├─────┐
            │                                             │ 
            │                                             │ 
            │ Which services should be restarted?         │ 
            │                                             │ 
            │    [ ] docker.service                       │ 
            │    [ ] lightdm.service                      │ 
            │    [*] packagekit.service                   │ 
            │    [ ] unattended-upgrades.service          │ 
            │    [ ] [email protected]
            │                                             │ 
            │                                             │ 
            │          <Ok>              <Cancel>         │ 
            │                                             │ 
            └─────────────────────────────────────────────┘ 
                                                            

相关内容