33 lines
827 B
Bash
33 lines
827 B
Bash
#!/bin/bash
|
|
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
|
while getopts "s:t:a:S:" opt; do
|
|
case $opt in
|
|
s)
|
|
servicestate=$OPTARG
|
|
;;
|
|
t)
|
|
servicestatetype=$OPTARG
|
|
;;
|
|
a)
|
|
serviceattempt=$OPTARG
|
|
;;
|
|
S)
|
|
service=$OPTARG
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if ( [ -z $servicestate ] || [ -z $servicestatetype ] || [ -z $serviceattempt ] || [ -z $service ] ); then
|
|
echo "USAGE: $0 -s servicestate -z servicestatetype -a serviceattempt -S service"
|
|
exit 3;
|
|
else
|
|
# Only restart on the third attempt of a critical event
|
|
if ( [ $servicestate == "CRITICAL" ] && [ $servicestatetype == "SOFT" ] && [ $serviceattempt -eq 3 ] ); then
|
|
if [ pidof systemd >/dev/null ]; then
|
|
sudo systemctl restart $service
|
|
else
|
|
sudo service $service restart
|
|
fi
|
|
fi
|
|
fi
|