exec &> /chroot_boot.log

kt_pid="$(pidof kthreadd 2>/dev/null )"
[ -n "$kt_pid" ] && ps_kt="--ppid $kt_pid"

PIDS=` ps --no-headers -o pid= -N -s $(ps -p $$ --no-headers -o sid ) $ps_kt `
kill $PIDS
kill 1

# force if any pids are remaining
for pid in $PIDS; do
        if [ -e /proc/$pid ]; then
                echo "Waiting for termination"
                sleep 3
                echo "Hard kill"
                kill -9 $PIDS
                break
        fi
done

echo Running processes:
ps aux
echo

init U

# Unmount old root
for mount_point in `cat /proc/mounts | grep old_root | awk '{ print length($2) " " $2; }' $file | sort -r -n | cut -d ' ' -f 2-` ; do
	[ -d $mount_point ] || continue
	umount -n $mount_point
	if [ $? -ne 0 ]; then
		echo WARNING: Failed to unmount $mount_point
		echo fuser -m $mount_point :
		fuser -m $mount_point
		umount -nl $mount_point
	fi
done

if [ "$( ls /old_root | wc -l )" == "0" ]; then
	rm -r /old_root || echo WARNING: Failed to remove old root mount point
else
	echo WARNING: old_root directory was not empty
fi

# Make sure the watchdog won't trigger
[ -e "/dev/watchdog" ] && echo V > /dev/watchdog

# /proc will be remounted by rcS
umount /proc

echo Booting rootfs...

/etc/init.d/rcS

# Force reload of runlevel 5
init S
init 5
