check_webservice_load.sh: don't start/stop services if package management (apt,dpkg,..) ist running.

This commit is contained in:
Christoph 2018-12-27 17:49:50 +01:00
parent 29d0cf6562
commit 66ad72af4c

View File

@ -82,6 +82,35 @@ ok (){
echo ""
}
detect_os () {
if $(which lsb_release > /dev/null 2>&1) ; then
os_dist="$(lsb_release -i | awk '{print tolower($3)}')"
os_version="$(lsb_release -r | awk '{print tolower($2)}')"
os_codename="$(lsb_release -c | awk '{print tolower($2)}')"
if [[ "$os_dist" = "debian" ]]; then
if $(echo "$os_version" | grep -q '\.') ; then
os_version=$(echo "$os_version" | cut --delimiter='.' -f1)
fi
fi
elif [[ -e "/etc/os-release" ]]; then
. /etc/os-release
os_dist=$ID
os_version=${VERSION_ID}
fi
# remove whitespace from os_dist and os_version
os_dist="${os_dist// /}"
os_version="${os_version// /}"
}
trim() {
local var="$*"
var="${var#"${var%%[![:space:]]*}"}" # remove leading whitespace characters
@ -124,6 +153,10 @@ else
fi
fi
# - Detect linux distribution
# -
detect_os
#---------------------------------------
#-----------------------------
@ -138,31 +171,73 @@ fi
if ! ps -e f | grep -E "[[:digit:]]\ ${check_string_ps}" | grep -v grep > /dev/null ; then
error "Postfix Mailservice seems to be down! Trying to restart service now.."
if $systemd_supported ; then
$systemctl daemon-reload > /dev/null 2> ${LOCK_DIR}/err_msg.log
if [[ $? -ne 0 ]]; then
error "$(cat ${LOCK_DIR}/err_msg.log)"
fi
sleep 2
$systemctl stop postfix > /dev/null 2> ${LOCK_DIR}/err_msg.log
if [[ $? -ne 0 ]]; then
error "$(cat ${LOCK_DIR}/err_msg.log)"
fi
sleep 10
$systemctl start postfix > /dev/null 2> ${LOCK_DIR}/err_msg.log
if [[ $? -ne 0 ]]; then
error "$(cat ${LOCK_DIR}/err_msg.log)"
# - Don't Start/Stop Services if package management is running (apt,aptitude,dpkg)
# -
if [[ "${os_dist,,}" = "debian" ]] || [[ "${os_dist,,}" = "ubuntu" ]] ; then
if $(lsof /var/lib/dpkg/lock >/dev/null 2>&1) ; then
warn "It seems that package management (apt,dpkg) is running. Exiting restarting the service .."
else
$systemctl stop postfix > /dev/null 2> ${LOCK_DIR}/err_msg.log
if [[ $? -ne 0 ]]; then
error "$(cat ${LOCK_DIR}/err_msg.log)"
fi
sleep 10
# - Don't Start/Stop Services if package management is running (apt,aptitude,dpkg)
# -
if [[ "${os_dist,,}" = "debian" ]] || [[ "${os_dist,,}" = "ubuntu" ]] ; then
if $(lsof /var/lib/dpkg/lock >/dev/null 2>&1) ; then
warn "It seems that package management (apt,dpkg) is running. Omit starting the service .."
else
$systemctl start postfix > /dev/null 2> ${LOCK_DIR}/err_msg.log
if [[ $? -ne 0 ]]; then
error "$(cat ${LOCK_DIR}/err_msg.log)"
fi
fi
fi
fi
fi
else
$postfix_init_script stop > /dev/null 2>&1
if [[ $? -ne 0 ]]; then
error "Stopping Postfix Mailservice failed!"
fi
sleep 10
$postfix_init_script start > /dev/null 2>&1
if [[ $? -ne 0 ]]; then
error "Starting Postfix Mailservice failed!"
# - Don't Start/Stop Services if package management is running (apt,aptitude,dpkg)
# -
if [[ "${os_dist,,}" = "debian" ]] || [[ "${os_dist,,}" = "ubuntu" ]] ; then
if $(lsof /var/lib/dpkg/lock >/dev/null 2>&1) ; then
warn "It seems that package management (apt,dpkg) is running - Exiting restarting the service .."
else
$postfix_init_script stop > /dev/null 2>&1
if [[ $? -ne 0 ]]; then
error "Stopping Postfix Mailservice failed!"
fi
sleep 10
# - Don't Start/Stop Services if package management is running (apt,aptitude,dpkg)
# -
if [[ "${os_dist,,}" = "debian" ]] || [[ "${os_dist,,}" = "ubuntu" ]] ; then
if $(lsof /var/lib/dpkg/lock >/dev/null 2>&1) ; then
warn "It seems that package management (apt,dpkg) is running. Omit starting the service .."
else
$postfix_init_script start > /dev/null 2>&1
if [[ $? -ne 0 ]]; then
error "Starting Postfix Mailservice failed!"
fi
fi
fi
fi
fi
fi
declare -i counter=0