check_reboot_required - handle proxmox & rpi specific kernel

This commit is contained in:
Ludovic Cartier
2026-05-23 11:49:32 +02:00
parent a4d214e451
commit e587ffcded
+32 -7
View File
@@ -84,19 +84,44 @@ if [ -f /run/reboot-required ]; then
fi fi
fi fi
# Fallback: compare running kernel with latest installed kernel # Fallback: compare running kernel with latest installed kernel package.
# Tries known naming conventions in order until one matches.
if [ "$reboot_needed" -eq 0 ]; then if [ "$reboot_needed" -eq 0 ]; then
if ! command -v dpkg >/dev/null 2>&1; then if ! command -v dpkg >/dev/null 2>&1; then
echo "UNKNOWN: 'dpkg' not found. Cannot determine reboot status." echo "UNKNOWN: 'dpkg' not found. Cannot determine reboot status."
exit $STATE_UNKNOWN exit $STATE_UNKNOWN
fi fi
installed_kernel=$(dpkg -l "linux-image-*" 2>/dev/null \ installed_kernel=""
| awk '/^ii/{print $2}' \
| sed 's/linux-image-//' \ # Standard Debian / Ubuntu: linux-image-<version>
| grep -E '^[0-9]' \ if [ -z "$installed_kernel" ]; then
| sort -V \ installed_kernel=$(dpkg -l "linux-image-*" 2>/dev/null \
| tail -1) | awk '/^ii/{print $2}' \
| sed 's/^linux-image-//' \
| grep -E '^[0-9]' \
| sort -V \
| tail -1)
fi
# Proxmox: proxmox-kernel-<version>
if [ -z "$installed_kernel" ]; then
installed_kernel=$(dpkg -l "proxmox-kernel-*" 2>/dev/null \
| awk '/^ii/{print $2}' \
| sed 's/^proxmox-kernel-//' \
| grep -E '^[0-9]' \
| sort -V \
| tail -1)
fi
# Raspberry Pi: raspberrypi-kernel (version not embedded in the package name;
# the primary /run/reboot-required check is the reliable method here).
if [ -z "$installed_kernel" ]; then
if dpkg -l raspberrypi-kernel 2>/dev/null | grep -q '^ii'; then
echo "OK: No reboot required. Running kernel: ${running_kernel}."
exit $STATE_OK
fi
fi
if [ -z "$installed_kernel" ]; then if [ -z "$installed_kernel" ]; then
echo "UNKNOWN: No versioned kernel package found via dpkg." echo "UNKNOWN: No versioned kernel package found via dpkg."