Integrate migrate-run into bootmisc
The migrate-run service was hanging when parallel startup was enabled because of its dependencies. This integrates the logic for this service into bootmisc, which will avoid the issues with parallel startup. I would like to thank Robin H. Johnson <robbat2@gentoo.org> for his input on this patch
This commit is contained in:
parent
b628481701
commit
5adb3930c7
@ -22,7 +22,7 @@ SRCS-FreeBSD+= adjkerntz.in devd.in dumpon.in ipfw.in mixer.in nscd.in \
|
|||||||
NET_LO-Linux= net.lo
|
NET_LO-Linux= net.lo
|
||||||
SRCS-Linux= devfs.in dmesg.in hwclock.in consolefont.in keymaps.in \
|
SRCS-Linux= devfs.in dmesg.in hwclock.in consolefont.in keymaps.in \
|
||||||
killprocs.in modules.in mount-ro.in mtab.in numlock.in \
|
killprocs.in modules.in mount-ro.in mtab.in numlock.in \
|
||||||
procfs.in sysfs.in termencoding.in migrate-run.in
|
procfs.in sysfs.in termencoding.in
|
||||||
|
|
||||||
NET_LO-NetBSD= net.lo0
|
NET_LO-NetBSD= net.lo0
|
||||||
# Generic BSD scripts
|
# Generic BSD scripts
|
||||||
|
@ -72,6 +72,26 @@ mkutmp()
|
|||||||
chmod 0664 "$1"
|
chmod 0664 "$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
migrate_to_run()
|
||||||
|
{
|
||||||
|
src="$1"
|
||||||
|
dst="$2"
|
||||||
|
if [ -L $src -a "$(readlink -f $src)" != $dst ]; then
|
||||||
|
ewarn "$src does not point to $dst."
|
||||||
|
ewarn "Setting $src to point to $dst."
|
||||||
|
rm $src
|
||||||
|
elif [ ! -L $src -a -d $src ]; then
|
||||||
|
ebegin "Migrating $src to $dst"
|
||||||
|
cp -a $src/* $dst/
|
||||||
|
rm -rf $src
|
||||||
|
eend $?
|
||||||
|
fi
|
||||||
|
# If $src doesn't exist at all, just run this
|
||||||
|
if [ ! -e $src ]; then
|
||||||
|
ln -s $dst $src
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
start()
|
start()
|
||||||
{
|
{
|
||||||
# Remove any added console dirs
|
# Remove any added console dirs
|
||||||
@ -79,8 +99,16 @@ start()
|
|||||||
|
|
||||||
local logw=false runw=false extra=
|
local logw=false runw=false extra=
|
||||||
# Ensure that our basic dirs exist
|
# Ensure that our basic dirs exist
|
||||||
[ "$RC_UNAME" = Linux ] && extra=/var/lib/misc # Satisfy Linux FHS
|
if [ "$RC_UNAME" = Linux ]; then
|
||||||
for x in /var/log /var/run /tmp $extra; do
|
# Satisfy Linux FHS
|
||||||
|
extra=/var/lib/misc
|
||||||
|
if [ ! -d /run ]; then
|
||||||
|
extra="/var/run $extra"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
extra=/var/run
|
||||||
|
fi
|
||||||
|
for x in /var/log /tmp $extra; do
|
||||||
if ! [ -d $x ]; then
|
if ! [ -d $x ]; then
|
||||||
if ! mkdir -p $x; then
|
if ! mkdir -p $x; then
|
||||||
eend 1 "failed to create needed directory $x"
|
eend 1 "failed to create needed directory $x"
|
||||||
@ -89,6 +117,11 @@ start()
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
if [ "$RC_UNAME" = Linux -a -d /run ]; then
|
||||||
|
migrate_to_run /var/lock /run/lock
|
||||||
|
migrate_to_run /var/run /run
|
||||||
|
fi
|
||||||
|
|
||||||
if dir_writable /var/run; then
|
if dir_writable /var/run; then
|
||||||
ebegin "Creating user login records"
|
ebegin "Creating user login records"
|
||||||
local xtra=
|
local xtra=
|
||||||
|
@ -1,37 +0,0 @@
|
|||||||
#!@PREFIX@/sbin/runscript
|
|
||||||
# Copyright 1999-2011 Gentoo Foundation
|
|
||||||
# Released under the 2-clause BSD license.
|
|
||||||
|
|
||||||
description="Migrate /var/run and /var/lock to /run"
|
|
||||||
|
|
||||||
depend()
|
|
||||||
{
|
|
||||||
before *
|
|
||||||
after localmount
|
|
||||||
}
|
|
||||||
|
|
||||||
start()
|
|
||||||
{
|
|
||||||
einfo "starting $RC_SVCNAME"
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
stop()
|
|
||||||
{
|
|
||||||
einfo "completing /var/run and /var/lock migration."
|
|
||||||
if [ -d /run ]; then
|
|
||||||
if [ ! -L /var/lock ]; then
|
|
||||||
ebegin "Migrating /var/lock to /run"
|
|
||||||
rm -rf /var/lock
|
|
||||||
ln -s /run/lock /var/lock
|
|
||||||
eend 0
|
|
||||||
fi
|
|
||||||
if [ ! -L /var/run ]; then
|
|
||||||
ebegin "Migrating /var/run to /run"
|
|
||||||
rm -rf /var/run
|
|
||||||
ln -s /run /var/run
|
|
||||||
eend 0
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
return 0
|
|
||||||
}
|
|
@ -26,7 +26,7 @@ BOOT-FreeBSD= hostid net.lo0 newsyslog savecore syslogd
|
|||||||
# FreeBSD specific stuff
|
# FreeBSD specific stuff
|
||||||
BOOT-FreeBSD+= adjkerntz dumpon syscons
|
BOOT-FreeBSD+= adjkerntz dumpon syscons
|
||||||
|
|
||||||
BOOT-Linux= hwclock keymaps modules mtab net.lo procfs termencoding migrate-run
|
BOOT-Linux= hwclock keymaps modules mtab net.lo procfs termencoding
|
||||||
SHUTDOWN-Linux= killprocs mount-ro
|
SHUTDOWN-Linux= killprocs mount-ro
|
||||||
SYSINIT-Linux= devfs dmesg
|
SYSINIT-Linux= devfs dmesg
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user