2023-03-19 21:35:59 +01:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
get_boot_kernel() {
|
|
|
|
local get_version=0
|
|
|
|
for field in $(file /boot/vmlinuz*); do
|
|
|
|
if [[ $get_version -eq 1 ]]; then
|
|
|
|
echo $field
|
|
|
|
return
|
|
|
|
elif [[ $field == version ]]; then
|
|
|
|
# the next field contains the version
|
|
|
|
get_version=1
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
|
|
|
rc=1
|
|
|
|
|
|
|
|
libs=$(lsof -n +c 0 2> /dev/null | grep 'DEL.*lib' | awk '1 { print $1 ": " $NF }' | sort -u)
|
|
|
|
if [[ -n $libs ]]; then
|
|
|
|
cat <<< $libs
|
|
|
|
echo "# LIBS: reboot required"
|
|
|
|
rc=0
|
|
|
|
fi
|
|
|
|
|
2024-06-07 17:27:48 +02:00
|
|
|
binaries=$(lsof -n +c 0 2> /dev/null | grep -- '(deleted)' | awk '1 { print $1 ": " $(NF-1) " " $NF }' | sort -u)
|
|
|
|
if [[ -n $binaries ]]; then
|
|
|
|
cat <<< $binaries
|
|
|
|
echo "# REGULAR FILES: reboot required"
|
|
|
|
rc=0
|
|
|
|
fi
|
|
|
|
|
2023-03-19 21:35:59 +01:00
|
|
|
active_kernel=$(uname -r)
|
|
|
|
current_kernel=$(get_boot_kernel)
|
|
|
|
if [[ $active_kernel != $current_kernel ]]; then
|
|
|
|
echo "$active_kernel < $current_kernel"
|
|
|
|
echo "# KERNEL: reboot required"
|
|
|
|
rc=0
|
|
|
|
fi
|
2023-03-20 11:32:10 +01:00
|
|
|
|
|
|
|
if [[ $rc == '1' ]]; then
|
|
|
|
echo "# No reboot required"
|
|
|
|
fi
|