mirror of
https://github.com/eliasstepanik/ark-ac-server-tools.git
synced 2026-01-13 03:18:28 +00:00
Merge pull request #296 from klightspeed/1.4#lockupdate
Prevent multiple updates from occurring concurrently
This commit is contained in:
commit
d7fc3bb3a2
@ -769,6 +769,22 @@ doUpdate() {
|
||||
fi
|
||||
done
|
||||
|
||||
echo "$$" >"${arkserverroot}/.ark-update.lock.$$"
|
||||
while true; do
|
||||
if ! ln "${arkserverroot}/.ark-update.lock.$$" "${arkserverroot}/.ark-update.lock"; then
|
||||
local lockpid="$(<"${arkserverroot}/.ark-update.lock")"
|
||||
if [ -n "$lockpid" ] && [ "$lockpid" != "$$" ] && kill -0 "$lockpid"; then
|
||||
echo "Update already in progress (PID: $lockpid)"
|
||||
rm -f "${arkserverroot}/.ark-update.lock.$$"
|
||||
return 1
|
||||
fi
|
||||
rm -f "${arkserverroot}/.ark-update.lock"
|
||||
else
|
||||
break
|
||||
fi
|
||||
done
|
||||
rm -f "${arkserverroot}/.ark-update.lock.$$"
|
||||
|
||||
if [ -n "$modupdate" ]; then
|
||||
if ! doDownloadAllMods; then
|
||||
modupdate=
|
||||
@ -843,6 +859,8 @@ doUpdate() {
|
||||
echo "Your server is already up to date! The most recent version is ${bnumber}."
|
||||
echo "`timestamp`: No update needed." >> "$logdir/update.log"
|
||||
fi;
|
||||
|
||||
rm -f "${arkserverroot}/.ark-update.lock"
|
||||
}
|
||||
|
||||
#
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user