60 lines
1.2 KiB
Bash
Executable File
60 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
. /usr/lib/umm/umm_vars
|
|
[[ -x ${0}.local ]] && source ${0}.local
|
|
|
|
|
|
set_umm(){
|
|
echo umm >$UMM_FLAG
|
|
}
|
|
|
|
# check if UMM enabled and skip processing any services
|
|
[[ "$UMM" == "yes" ]] || umm-skip
|
|
|
|
if [[ "$1" == "timer" ]] ; then
|
|
sleep $(($COUNTER_RESET_TIME*60))
|
|
rm -f $UMM_DATA/UMM_DRC.var
|
|
exit 0
|
|
fi
|
|
|
|
# gracefull shutdown restart processing
|
|
if [[ "$1" == "down" ]] ; then
|
|
rm -f $UMM_DATA/UMM_DRC.var
|
|
exit 0
|
|
fi
|
|
|
|
# run sceduled programm in maintenace mode
|
|
if [[ "$1" == "run" ]] ; then
|
|
if [[ -f "$UMM_DATA/UMM_CMD" && -f "$UMM_FLAG" ]] ; then
|
|
cmd=$(cat $UMM_DATA/UMM_CMD)
|
|
rm $UMM_DATA/UMM_CMD
|
|
$cmd &> $UMM_DATA/UMM_CMD.out || true
|
|
fi
|
|
exit 0
|
|
fi
|
|
|
|
# clean previos state
|
|
[[ -f $UMM_FLAG ]] && rm $UMM_FLAG
|
|
|
|
# check if umm enforsed parameter is present
|
|
if [[ -f $UMM_DATA/UMM_ENFORCED ]] ; then
|
|
set_umm
|
|
rm $UMM_DATA/UMM_ENFORCED
|
|
fi
|
|
|
|
# check if umm kernel parameter is present
|
|
for t in $(cat /proc/cmdline); do
|
|
[[ "$t" == "umm" ]] && set_umm
|
|
done
|
|
|
|
# check if dirty rebout count is reached
|
|
UMM_DRC=$((UMM_DRC+1))
|
|
echo "UMM_DRC=$UMM_DRC">$UMM_DATA/UMM_DRC.var
|
|
|
|
[[ ${UMM_DRC} -gt ${REBOOT_COUNT} ]] && set_umm
|
|
|
|
if [[ -f $UMM_FLAG ]] ; then
|
|
umm-run
|
|
else
|
|
umm-skip
|
|
fi
|