occ_maintenance.sh: don't start if script is already running.

This commit is contained in:
2026-04-12 16:22:02 +02:00
parent 416960f84c
commit 0ae2bad29b

View File

@@ -11,7 +11,8 @@ snippet_dir="${script_dir}/snippets"
declare -a unsorted_website_arr
declare -a website_arr
log_file="$(mktemp)"
LOCK_DIR="/tmp/${script_name%%.*}.LOCK"
log_file="${LOCK_DIR}/${script_name%%.*}.log"
backup_date=$(date +%Y-%m-%d-%H%M)
@@ -61,7 +62,7 @@ usage() {
clean_up() {
# Perform program exit housekeeping
rm -f $log_file
rm -f "$LOCK_DIR"
blank_line
exit $1
}
@@ -191,10 +192,53 @@ fi
# - Jobhandling
# ----------
# - Run 'clean_up' for signals SIGHUP SIGINT SIGTERM
if pgrep -f "$(basename $0)" | grep -v $$ ; then
msg="A previos instance of script \"`basename $0`\" seems already be running."
echo ""
if $terminal ; then
echo -e "[ \033[31m\033[1mFatal\033[m ]: $msg"
echo ""
echo -e " \033[31m\033[1mScript was interupted\033[m!"
else
echo " [ Fatal ]: $msg"
echo ""
echo " Script was interupted!"
fi
echo
exit 1
fi
# - If job already runs, stop execution..
# -
if mkdir "$LOCK_DIR" 2> /dev/null ; then
# - Remove lockdir when the script finishes, or when it receives a signal
# -
trap clean_up SIGHUP SIGINT SIGTERM
else
msg="A previos instance of script \"`basename $0`\" seems already be running."
echo ""
if $terminal ; then
echo -e "[ \033[31m\033[1mFatal\033[m ]: $msg"
echo ""
echo -e " \033[31m\033[1mScript was interupted\033[m!"
else
echo " [ Fatal ]: $msg"
echo ""
echo " Script was interupted!"
fi
echo
exit 1
fi
# -------------