diff --git a/check_reboot_required b/check_reboot_required index 20bc63abeab9dd344f954a43a9789e2b35f3588b..79609f709a1e4a1d0cd43cff51083b96dafd8dfe 100755 --- a/check_reboot_required +++ b/check_reboot_required @@ -5,27 +5,81 @@ # # ---------------------------------------------------------------------- # works for sure on -# - centos7 -# - debian6,7 +# - centos7,8 +# - debian6..10 # - ubuntu10,12 # ---------------------------------------------------------------------- # 2016-08-12 added ouput of packages # 2020-03-05 v1.2 <axel.hahn@iml.unibe.ch> switch to ph.* helper functions +# 2022-10-14 v1.3 <axel.hahn@unibe.ch> fix debian output if /var/run/reboot-required.pkgs does not exist +# Shellfixes; add help # ====================================================================== -. `dirname $0`/inc_pluginfunctions -distro=`ph.getOS` +. $(dirname $0)/inc_pluginfunctions +self_APPNAME=$( basename $0 | tr [:lower:] [:upper:] ) +self_APPVERSION=1.3 + +distro=$( ph.getOS ) + +# ---------------------------------------------------------------------- +# functions # ---------------------------------------------------------------------- + +function showHelp(){ +cat <<EOF +______________________________________________________________________ + +$self_APPNAME +v$self_APPVERSION + +(c) Institute for Medical Education - University of Bern +Licence: GNU GPL 3 +______________________________________________________________________ + +Check if a reboot is required. +It works for Centos and Debian/ Ubuntu. + +If the reboot is required: +* On Centos it shows the kernel number that will be installed, +* On Debian7 Ubuntu it shows the packages that require the reboot, + +SYNTAX: +$(basename $0) + +OPTIONS: + + -h or --help show this help. + +PARAMETERS: + + None. + +EXAMPLE: +$(basename $0) + +EOF +} +# ---------------------------------------------------------------------- + +# --- check param -h +case "$1" in + "--help"|"-h") + showHelp + exit 0 + ;; + *) +esac + case $distro in "centos") - currentkernel=`uname -r` - out=`rpm -q --last kernel | head -1 | fgrep $currentkernel` + currentkernel=$(uname -r) + out=$(rpm -q --last kernel | head -1 | fgrep $currentkernel) if [ -z "$out" ]; then ph.setStatus "warning" - ph.status "[$distro] need to reboot for kernel `rpm -q --last kernel | head -1` (current: $currentkernel)" + ph.status "[$distro] need to reboot for kernel $(rpm -q --last kernel | head -1) (current: $currentkernel)" else ph.status "[$distro] no reboot required (kernel is up to date: $currentkernel)" fi @@ -36,8 +90,10 @@ case $distro in if [ ! -f /var/run/reboot-required ]; then ph.status "[$distro] no reboot required" else + byPackages="(I do not know the package that requires it)" + test -f /var/run/reboot-required.pkgs && byPackages="by $( tr '\n' ',' < /var/run/reboot-required.pkgs )" ph.setStatus "warning" - ph.status "[$distro] `cat /var/run/reboot-required` by `tr '\n' ',' </var/run/reboot-required.pkgs`" + ph.status "[$distro] $( cat /var/run/reboot-required ) ${byPackages}" fi ;;