diff options
Diffstat (limited to 'tmp/pre_upgrade_command')
-rw-r--r-- | tmp/pre_upgrade_command | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tmp/pre_upgrade_command b/tmp/pre_upgrade_command index c6bb66c..d146187 100644 --- a/tmp/pre_upgrade_command +++ b/tmp/pre_upgrade_command @@ -6,5 +6,25 @@ PRIOR_VERSION=`uname -r | cut -d'.' -f1` echo $PRIOR_VERSION > /tmp/pre_upgrade_version +# Hack to workaround ticket #3749 +if [ "${PRIOR_VERSION}" = "8" ] && grep -q 'sh /etc/rc.reboot' /etc/rc.firmware; then + PROC=$(ps axwww | grep '/etc/rc.firmware *pfSenseupgrade') + PID='' + IMG='' + if [ -n "${PROC}" ]; then + PID=$(echo "${PROC}" | awk '{print $1}') + IMG=$(echo "${PROC}" | sed 's,^.*pfSenseupgrade *,,') + fi + + if [ -n "${PID}" -a -n "${IMG}" -a -f "${IMG}" ]; then + cp -fp /bin/sh /tmp/sh.old + kill ${PID} >/dev/null 2>&1 + kill -9 ${PID} >/dev/null 2>&1 + sed -i '' -e 's,sh /,/tmp/sh.old /,' /etc/rc.firmware + /etc/rc.firmware pfSenseupgrade "${IMG}" + exit + fi +fi + rm /boot/kernel/* |