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 589a630610fff26f6a549d82c73be61b74187327. * 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"
|
||||
|
|
Reference in a new issue