diff --git a/usr/lib/archboot/update-installer.sh b/usr/lib/archboot/update-installer.sh index 8815adf24..f0d988e56 100644 --- a/usr/lib/archboot/update-installer.sh +++ b/usr/lib/archboot/update-installer.sh @@ -118,9 +118,20 @@ _clean_archboot() { } _gpg_check() { + # pacman-key process itself while pgrep -x pacman-key > /dev/null 2>&1; do - sleep 2 + sleep 1 done + # gpg finished in background + while pgrep -x gpg > /dev/null 2>&1; do + sleep 1 + done + while true; do + # gpg-agent finished in background + [[ "$(pgrep -x gpg-agent -c)" == "2" ]] && break + sleep 1 + done + while pgrep -x gpg-agent -c [[ "${_RUNNING_ARCH}" == "x86_64" ]] && systemctl stop pacman-init.service [[ "${_RUNNING_ARCH}" == "aarch64" ]] && systemctl stop pacman-init-arm.service }