mirror of
https://github.com/Ryujinx/Ryujinx.git
synced 2024-11-17 19:16:39 +00:00
Improve macOS updater (#5064)
* Fix macOS Updater (once again)
* Also fix my brain's issues
* Move set -e that lsof doesn't trigger exit 1
* Resolve yesterdays brain malfunction 2
* Revert "Move set -e that lsof doesn't trigger exit 1"
This reverts commit 589a630610
.
* Also check if PID exists
* Remove lsof and instead check for running processes
* Remove empty lines
* Increase max iterations
* Address feedback
* Remove obsolete check for child processes
* Update comments
* Update comments
* I swear this is the last commit
* lsof + ps check
This commit is contained in:
parent
378080eb87
commit
7e0b4bd538
1 changed files with 19 additions and 6 deletions
|
@ -25,14 +25,27 @@ error_handler() {
|
|||
exit 1
|
||||
}
|
||||
|
||||
# Wait for Ryujinx to exit
|
||||
# NOTE: in case no fds are open, lsof could be returning with a process still living.
|
||||
# We wait 1s and assume the process stopped after that
|
||||
lsof -p $APP_PID +r 1 &>/dev/null
|
||||
sleep 1
|
||||
|
||||
trap 'error_handler ${LINENO}' ERR
|
||||
|
||||
# Wait for Ryujinx to exit.
|
||||
# If the main process is still acitve, we wait for 1 second and check it again.
|
||||
# After the fifth time checking, this script exits with status 1.
|
||||
|
||||
attempt=0
|
||||
while true; do
|
||||
if lsof -p $APP_PID +r 1 &>/dev/null || ps -p "$APP_PID" &>/dev/null; then
|
||||
if [ "$attempt" -eq 4 ]; then
|
||||
exit 1
|
||||
fi
|
||||
sleep 1
|
||||
else
|
||||
break
|
||||
fi
|
||||
(( attempt++ ))
|
||||
done
|
||||
|
||||
sleep 1
|
||||
|
||||
# Now replace and reopen.
|
||||
rm -rf "$INSTALL_DIRECTORY"
|
||||
mv "$NEW_APP_DIRECTORY" "$INSTALL_DIRECTORY"
|
||||
|
|
Loading…
Reference in a new issue