misc/132766: wait_for_pids() in /etc/rc.subr is dull.
KOIE Hidetaka
hide at koie.org
Tue Mar 17 23:10:05 PDT 2009
>Number: 132766
>Category: misc
>Synopsis: wait_for_pids() in /etc/rc.subr is dull.
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Wed Mar 18 06:10:04 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator: KOIE Hidetaka
>Release: CURRENT
>Organization:
surigiken
>Environment:
FreeBSD guriandgura 8.0-CURRENT FreeBSD 8.0-CURRENT #0: Thu Feb 5 04:32:41 JST 2009 koie at guriandgura:/usr/obj/usr/src/sys/GURIANDGURA amd64
>Description:
wait_for_pids() in /etc/rc.subr uses sleep 2 to wait.
but, daemons usually exit before within 2 seconds in my environment.
I propose short sleep.
>How-To-Repeat:
>Fix:
Patch attached with submission follows:
--- /usr/src/etc/rc.subr 2008-11-01 09:21:29.578401768 +0900
+++ /etc/rc.subr 2009-03-10 18:26:12.000000000 +0900
@@ -351,7 +351,9 @@ wait_for_pids()
return
fi
_prefix=
+ _slp_list=0.5
while true; do
+ for _slp in $_slp_list; do
_nlist="";
for _j in $_list; do
if kill -0 $_j 2>/dev/null; then
@@ -362,9 +364,14 @@ wait_for_pids()
break
fi
_list=$_nlist
+ sleep $_slp
+ done
+ if [ -z "$_nlist" ]; then
+ break
+ fi
echo -n ${_prefix:-"Waiting for PIDS: "}$_list
_prefix=", "
- sleep 2
+ _slp_list="0.2 0.4 0.6 0.8"
done
if [ -n "$_prefix" ]; then
echo "."
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list