You've already forked nrpe
check_reboot_required - handle proxmox & rpi specific kernel
This commit is contained in:
@@ -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."
|
||||||
|
|||||||
Reference in New Issue
Block a user