ubuntu 20.04 无人值守升级无法启动。它们应该由 cronjob 启动/etc/cron.daily/apt-compat
。
脚本的第一部分阻止了以下操作:
# Systemd systems use a systemd timer unit which is preferable to
# run. We want to randomize the apt update and unattended-upgrade
# runs as much as possible to avoid hitting the mirrors all at the
# same time. The systemd time is better at this than the fixed
# cron.daily time
if [ -d /run/systemd/system ]; then
exit 0
fi
我的问题是:如何让脚本通过 if 条件。我理解注释,但它相当抽象。
未部署包含该目录的包。
# dpkg -S /run/systemd/system
dpkg-query: no path found matching pattern /run/systemd/system
请不要简单地写信给我删除这个目录。它包含文件。
# ls -la /run/systemd/system
total 4
drwxr-xr-x 3 root root 80 May 1 16:28 .
drwxr-xr-x 23 root root 540 May 1 16:28 ..
-rw-r--r-- 1 root root 299 May 1 16:28 netplan-ovs-cleanup.service
drwxr-xr-x 2 root root 60 May 1 16:28 systemd-networkd.service.wants `
我希望无人值守升级从 cronjob 开始。我在调试中使用 set -x 运行了脚本,并在脚本 exec 中运行了最后引用的命令/usr/lib/apt/apt.systemd.daily
。这工作正常并启动了无人值守升级。
答案1
如果您的系统使用 systemd(这是条件检查的内容),则无人值守升级不是从 cron 运行,而是从 systemd 计时器运行。
查找 /lib/systemd/system/apt-daily* 。