Use flock to prevent multiple instances running.
This commit is contained in:
parent
5a4bb12906
commit
40078e2972
1 changed files with 15 additions and 0 deletions
|
|
@ -6,6 +6,21 @@ SCANDIR="/data/depository"
|
||||||
DBFILE="/data/sites/slackware.uk/files/repository-search/search.db"
|
DBFILE="/data/sites/slackware.uk/files/repository-search/search.db"
|
||||||
RUNAS_GROUP="depository"
|
RUNAS_GROUP="depository"
|
||||||
|
|
||||||
|
# Only allow one copy of the script to run at any time.
|
||||||
|
# shellcheck disable=SC2154
|
||||||
|
if [[ "$FLOCK" != "$0" ]]; then
|
||||||
|
# shellcheck disable=SC2093
|
||||||
|
exec env FLOCK="$0" flock -E 10 -e -n "$0" "$0" "$@"
|
||||||
|
ERR="$?"
|
||||||
|
if (( ERR == 10 )); then
|
||||||
|
# File is locked, exit now.
|
||||||
|
exit 0
|
||||||
|
elif (( ERR > 0 )); then
|
||||||
|
printf "%s: %s\\n" "${0##*/}" "flock execution error" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
RAND="$$$RANDOM"
|
RAND="$$$RANDOM"
|
||||||
|
|
||||||
if ionice -c3 nice -n 19 sg "$RUNAS_GROUP" -c "/opt/bin/updatedb -l no -o \"$DBFILE.$RAND\" -U \"$SCANDIR\" >/dev/null 2>&1"; then
|
if ionice -c3 nice -n 19 sg "$RUNAS_GROUP" -c "/opt/bin/updatedb -l no -o \"$DBFILE.$RAND\" -U \"$SCANDIR\" >/dev/null 2>&1"; then
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue