diff --git a/files/nrpe/check_reboot_required b/files/nrpe/check_reboot_required index b7cbe0b..6d3f992 100755 --- a/files/nrpe/check_reboot_required +++ b/files/nrpe/check_reboot_required @@ -84,19 +84,44 @@ if [ -f /run/reboot-required ]; then 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 ! command -v dpkg >/dev/null 2>&1; then echo "UNKNOWN: 'dpkg' not found. Cannot determine reboot status." exit $STATE_UNKNOWN fi - installed_kernel=$(dpkg -l "linux-image-*" 2>/dev/null \ - | awk '/^ii/{print $2}' \ - | sed 's/linux-image-//' \ - | grep -E '^[0-9]' \ - | sort -V \ - | tail -1) + installed_kernel="" + + # Standard Debian / Ubuntu: linux-image- + if [ -z "$installed_kernel" ]; then + installed_kernel=$(dpkg -l "linux-image-*" 2>/dev/null \ + | awk '/^ii/{print $2}' \ + | sed 's/^linux-image-//' \ + | grep -E '^[0-9]' \ + | sort -V \ + | tail -1) + fi + + # Proxmox: proxmox-kernel- + 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 echo "UNKNOWN: No versioned kernel package found via dpkg."