33 lines
827 B
Plaintext
33 lines
827 B
Plaintext
|
#!/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
|