我在Intel (amd64)和Raspberry (arm64)上都安装了UbuntuServer22.04。
使用上一次内核更新(由unattended-upgrades
安装),/var/run/reboot-required
和/var/run/reboot-required.pkgs
文件还没有在Intel系统上创建(因此系统没有被标记为重新启动),但是在RasPi上,这是正常工作的。
Log条目来自/var/log/apt/history.log
。
英特尔Atom:
Start-Date: 2022-05-24 06:52:55
Commandline: /usr/bin/unattended-upgrade
Install: linux-image-5.15.0-33-generic:amd64 (5.15.0-33.34, automatic), linux-headers-5.15.0-33-generic:amd64 (5.15.0-33.34, automatic), linux-modules-5.15.0-33-generic:amd64 (5.15.0-33.34, automatic), linux-headers-5.15.0-33:amd64 (5.15.0-33.34, automatic), linux-modules-extra-5.15.0-33-generic:amd64 (5.15.0-33.34, automatic)
Upgrade: linux-headers-generic:amd64 (5.15.0.30.33, 5.15.0.33.36), linux-generic:amd64 (5.15.0.30.33, 5.15.0.33.36), linux-image-generic:amd64 (5.15.0.30.33, 5.15.0.33.36)
End-Date: 2022-05-24 06:53:41
Start-Date: 2022-05-24 06:53:46
Commandline: /usr/bin/unattended-upgrade
Remove: linux-headers-5.15.0-27-generic:amd64 (5.15.0-27.28)
End-Date: 2022-05-24 06:53:47
Start-Date: 2022-05-24 06:53:51
Commandline: /usr/bin/unattended-upgrade
Remove: linux-modules-extra-5.15.0-27-generic:amd64 (5.15.0-27.28), linux-image-5.15.0-27-generic:amd64 (5.15.0-27.28), linux-modules-5.15.0-27-generic:amd64 (5.15.0-27.28)
End-Date: 2022-05-24 06:53:56
Start-Date: 2022-05-24 06:54:00
Commandline: /usr/bin/unattended-upgrade
Remove: linux-headers-5.15.0-27:amd64 (5.15.0-27.28)
End-Date: 2022-05-24 06:54:02
覆盆子皮:
Start-Date: 2022-05-25 06:44:33
Commandline: /usr/bin/unattended-upgrade
Install: linux-modules-5.15.0-1008-raspi:arm64 (5.15.0-1008.8, automatic), linux-raspi-headers-5.15.0-1008:arm64 (5.15.0-1008.8, automatic), linux-image-5.15.0-1008-raspi:arm64 (5.15.0-1008.8, automatic), linux-headers-5.15.0-1008-raspi:arm64 (5.15.0-1008.8, automatic)
Upgrade: linux-headers-raspi:arm64 (5.15.0.1006.6, 5.15.0.1008.8), linux-raspi:arm64 (5.15.0.1006.6, 5.15.0.1008.8), linux-image-raspi:arm64 (5.15.0.1006.6, 5.15.0.1008.8)
End-Date: 2022-05-25 06:46:44
Start-Date: 2022-05-25 06:47:16
Commandline: /usr/bin/unattended-upgrade
Remove: linux-modules-5.15.0-1005-raspi:arm64 (5.15.0-1005.5), linux-image-5.15.0-1005-raspi:arm64 (5.15.0-1005.5)
End-Date: 2022-05-25 06:47:20
Start-Date: 2022-05-25 06:47:26
Commandline: /usr/bin/unattended-upgrade
Remove: linux-headers-5.15.0-1005-raspi:arm64 (5.15.0-1005.5)
End-Date: 2022-05-25 06:47:29
Start-Date: 2022-05-25 06:47:35
Commandline: /usr/bin/unattended-upgrade
Remove: linux-raspi-headers-5.15.0-1005:arm64 (5.15.0-1005.5)
End-Date: 2022-05-25 06:47:42
Kernel历史 (5.15内核行):dpkg --list *linux-image* | grep "\-5.15" | grep -v "un"
Intel Atom:(现在安装了内核5.15.0-30和5.15.0-33 )
rc linux-image-5.15.0-27-generic 5.15.0-27.28 amd64 Signed kernel image generic
ii linux-image-5.15.0-30-generic 5.15.0-30.31 amd64 Signed kernel image generic
ii linux-image-5.15.0-33-generic 5.15.0-33.34 amd64 Signed kernel image generic
树莓Pi:(现在安装了5.15.0-1006和5.15.0-1008内核)
rc linux-image-5.15.0-1005-raspi 5.15.0-1005.5 arm64 Linux kernel image for version 5.15.0 on ARMv8 SMP
ii linux-image-5.15.0-1006-raspi 5.15.0-1006.6 arm64 Linux kernel image for version 5.15.0 on ARMv8 SMP
ii linux-image-5.15.0-1008-raspi 5.15.0-1008.8 arm64 Linux kernel image for version 5.15.0 on ARMv8 SMP
文件的Cat /var/run/reboot-required
和/var/run/reboot-required.pkgs
。
英特尔Atom:
$ cat /var/run/reboot-required
cat: /var/run/reboot-required: No such file or directory
$ cat /var/run/reboot-required.pkgs
cat: /var/run/reboot-required.pkgs: No such file or directory
覆盆子皮:
$ cat /var/run/reboot-required
*** System restart required ***
$ cat /var/run/reboot-required.pkgs
linux-image-5.15.0-1008-raspi
linux-base
我已经读过这个答案了,但是我已经在这两个系统上安装了包update-notifier-common
。是的,符号链/run -> /var/run
也存在。
这两个系统都已从20.04升级,在这里,它在这两个系统上都像预期的那样工作。还应该注意的是,对于其他包(如libssl3
),我确信/var/run/reboot-required
在这两个系统上都得到了更新。
这对我来说有点烦人,因为我使用这些文件,既可以知道内核更新已经安装,也可以在指定的时间触发手动重新启动。因此,任何关于如何解决此问题并编写/var/run/reboot-required
文件的建议都将不胜感激。
注:我刚从一位朋友那里得到确认(也是与一台英特尔服务器),这里的文件是按预期编写的。所以看起来它也不是一个包错误。
发布于 2022-06-05 07:30:42
因此,现在,我的解决方案是每天使用cron
运行以下脚本,以模仿apt
/unattended-upgrade
所需的行为:
#!/bin/bash
# Get last reboot time and installed kernel
lastreboot=$(date -r /home/am/last_reboot +%s)
kernelinst=$(grep 'Upgrade: linux-headers-generic' /var/log/apt/history.log -A 1 -B 1 | tail -n 3)
# Get kernel version and install date
if [[ -n "$kernelinst" ]]
then
kernelvers=$(echo "$kernelinst" | grep -oP 'linux-image-[0-9]+\.[0-9]+\.[0-9-]+[A-Z-a-z]+')
kerneldate=$(date -d $(echo "$kernelinst" | grep 'End-Date' | awk '{print $2}') +%s)
fi
# Check if reboot-required.pkgs is already updated
if [[ -f /var/run/reboot-required.pkgs ]]
then
kernelpkgs=$(grep "$kernelvers" /var/run/reboot-required.pkgs)
fi
# Write to reboot-required/reboot-required.pkgs if conditions are met
if [[ "$kerneldate" -gt "$lastreboot" ]] && [[ "$kernelvers" != "$kernelpkgs" ]]
then
# Echo to /var/run/reboot-required
echo "*** System restart required ***" | tee /var/run/reboot-required
# Echo to /var/run/reboot-required.pkgs
echo "$kernelvers" | tee -a /var/run/reboot-required.pkgs
echo "linux-base" | tee -a /var/run/reboot-required.pkgs
else
echo "Do nothing"
fi
https://askubuntu.com/questions/1410490
复制相似问题