diff --git a/src/opnsense/scripts/firmware/upgrade.sh b/src/opnsense/scripts/firmware/upgrade.sh index bc57fc7a2..8ad3386b8 100755 --- a/src/opnsense/scripts/firmware/upgrade.sh +++ b/src/opnsense/scripts/firmware/upgrade.sh @@ -38,11 +38,15 @@ echo "Currently running $(opnsense-version) at $(date)" >> ${LOCKFILE} ${TEE} ${LOCKFILE} < ${PIPEFILE} & if opnsense-update -u > ${PIPEFILE} 2>&1; then - /usr/local/etc/rc.syshook upgrade - - echo '***REBOOT***' >> ${LOCKFILE} - sleep 5 - /usr/local/etc/rc.reboot + ${TEE} ${LOCKFILE} < ${PIPEFILE} & + if ! /usr/local/etc/rc.syshook upgrade > ${PIPEFILE} 2>&1; then + # aboort pending upgrades + opnsense-update -e >> ${LOCKFILE} 2>&1 + else + echo '***REBOOT***' >> ${LOCKFILE} + sleep 5 + /usr/local/etc/rc.reboot + fi fi echo '***DONE***' >> ${LOCKFILE}