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
fi fi
if [ -L /run/openrc ]; then
rm /run/openrc
fi
if [ "$sys" = VSERVER ]; then if [ "$sys" = VSERVER ]; then
rm -rf /run/* rm -rf /run/*
elif ! mountinfo -q /run; then 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 cp -p "$RC_LIBEXECDIR"/cache/* "$RC_SVCDIR" 2>/dev/null
fi fi
if [ -e "$RC_LIBEXECDIR"/init.d ]; then
rm -rf "$RC_LIBEXECDIR"/init.d
fi
echo sysinit >"$RC_SVCDIR"/softlevel echo sysinit >"$RC_SVCDIR"/softlevel
exit 0 exit 0

View File

@ -11,38 +11,19 @@ fi
if [ ! -d /run ]; then if [ ! -d /run ]; then
eerror "/run is not a directory." eerror "/run is not a directory."
eerror "This means the OpenRC dependency data cannot be migrated." eerror "moving /run to /run.pre-openrc"
eerror "Please create the /run directory and reboot the system." mv /run /run.pre-openrc
exit 1 mkdir /run
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
fi fi
rm -rf /run/openrc rm -rf /run/openrc
if ! mountinfo -q -f tmpfs /run; then
ln -s "@LIBEXECDIR@"/init.d /run/openrc
else
cp -a "@LIBEXECDIR@/init.d" /run/openrc cp -a "@LIBEXECDIR@/init.d" /run/openrc
rc-update -u rc-update -u
umount "@LIBEXECDIR@/init.d" fi
rm -rf "@LIBEXECDIR@/init.d"
einfo "The OpenRC dependency data was migrated successfully." einfo "The OpenRC dependency data was migrated successfully."
exit 0 exit 0