migrate-to-run: do not require a reboot

The script that migrates the @libexecdir@/rc/init.d directory to
/run/openrc should not require a reboot.

Reported-by: chainsaw@gentoo.org
This commit is contained in:
William Hubbs 2012-12-06 16:43:24 -06:00
parent a9272f50f7
commit e5173b9127
2 changed files with 19 additions and 30 deletions

View File

@ -51,6 +51,10 @@ if [ ! -d /run ]; then
fi
fi
if [ -L /run/openrc ]; then
rm /run/openrc
fi
if [ "$sys" = VSERVER ]; then
rm -rf /run/*
elif ! mountinfo -q /run; then
@ -84,5 +88,9 @@ if [ -e "$RC_LIBEXECDIR"/cache/deptree ]; then
cp -p "$RC_LIBEXECDIR"/cache/* "$RC_SVCDIR" 2>/dev/null
fi
if [ -e "$RC_LIBEXECDIR"/init.d ]; then
rm -rf "$RC_LIBEXECDIR"/init.d
fi
echo sysinit >"$RC_SVCDIR"/softlevel
exit 0

View File

@ -11,38 +11,19 @@ fi
if [ ! -d /run ]; then
eerror "/run is not a directory."
eerror "This means the OpenRC dependency data cannot be migrated."
eerror "Please create the /run directory and reboot the system."
exit 1
fi
if ! mountinfo -q -f tmpfs /run; then
for x in /run/.* /run/*; do
case "$x" in
/run/.|/run/..)
continue
;;
esac
if [ -e "$x" ]; then
eerror "Your /run directory contains files."
eerror "Please reboot the system."
exit 1
fi
done
mount -t tmpfs -o mode=0755,nosuid,nodev tmpfs /run 2> /dev/null
if [ $? != 0 ]; then
eerror "Unable to mount a tmpfs on /run."
eerror "This means the OpenRC dependency data cannot be migrated."
eerror "Please create the /run directory and reboot the system."
exit 1
fi
eerror "moving /run to /run.pre-openrc"
mv /run /run.pre-openrc
mkdir /run
fi
rm -rf /run/openrc
cp -a "@LIBEXECDIR@/init.d" /run/openrc
rc-update -u
umount "@LIBEXECDIR@/init.d"
rm -rf "@LIBEXECDIR@/init.d"
if ! mountinfo -q -f tmpfs /run; then
ln -s "@LIBEXECDIR@"/init.d /run/openrc
else
cp -a "@LIBEXECDIR@/init.d" /run/openrc
rc-update -u
fi
einfo "The OpenRC dependency data was migrated successfully."
exit 0