On Fri, Dec 06, 2002 at 05:52:38PM -0800, Kirk McKusick wrote:
> Adding a two minute delay before starting background fsck
> sounds like a very good idea to me. Please send me your
> suggested change.

Here it is.  As written it doesn't add the delay, but you can change
etc/defaults/rc.conf to do that it desired.

-- Brooks

-- 
Any statement of the form "X is the one, true Y" is FALSE.
PGP fingerprint 655D 519C 26A7 82E7 2529  9BF0 5D8E 8BE9 F238 1AD4

Index: etc/rc
===================================================================
RCS file: /usr/cvs/src/etc/rc,v
retrieving revision 1.323
diff -u -p -r1.323 rc
--- etc/rc      26 Nov 2002 17:51:03 -0000      1.323
+++ etc/rc      4 Dec 2002 23:08:41 -0000
@@ -982,8 +982,14 @@ esac
 # Start background fsck checks if necessary
 case ${background_fsck} in
 [Yy][Ee][Ss])
-       echo 'Starting background filesystem checks'
-       nice -4 fsck -B -p 2>&1 | logger -p daemon.notice &
+       bgfsck_msg='Starting background file system checks'
+       if [ ${background_fsck_delay:=0} -gt 0 ]; then
+               bgfsck_msg="${bgfsck_msg} in ${background_fsck_delay} seconds"
+       fi
+       echo "${bgfsck_msg}."
+
+       (sleep ${background_fsck_delay}; nice -4 fsck -B -p) 2>&1 | \
+           logger -p daemon.notice &
        ;;
 esac
 
Index: etc/defaults/rc.conf
===================================================================
RCS file: /usr/cvs/src/etc/defaults/rc.conf,v
retrieving revision 1.164
diff -u -p -r1.164 rc.conf
--- etc/defaults/rc.conf        6 Dec 2002 05:23:37 -0000       1.164
+++ etc/defaults/rc.conf        6 Dec 2002 18:02:18 -0000
@@ -40,6 +40,7 @@ script_name_sep=" "   # Change if your sta
 rc_conf_files="/etc/rc.conf /etc/rc.conf.local"
 fsck_y_enable="NO"     # Set to YES to do fsck -y if the initial preen fails.
 background_fsck="YES"  # Attempt to run fsck in the background where possible.
+background_fsck_delay="0" # Time to wait (seconds) before starting the fsck.
 extra_netfs_types="NO" # List of network extra filesystem types for delayed
                        # mount at startup (or NO).
 
Index: etc/rc.d/bgfsck
===================================================================
RCS file: /usr/cvs/src/etc/rc.d/bgfsck,v
retrieving revision 1.2
diff -u -p -r1.2 bgfsck
--- etc/rc.d/bgfsck     28 Jul 2002 03:38:10 -0000      1.2
+++ etc/rc.d/bgfsck     9 Oct 2002 23:31:45 -0000
@@ -11,9 +11,20 @@
 
 name="background-fsck"
 rcvar="background_fsck"
-start_precmd="echo 'Starting background file system checks.'"
-start_cmd="nice -4 fsck -B -p 2>&1 | logger -p daemon.notice &"
+start_cmd="bgfsck_start"
 stop_cmd=":"
+
+bgfsck_start ()
+{
+       bgfsck_msg='Starting background file system checks'
+       if [ ${background_fsck_delay:=0} -gt 0 ]; then
+               bgfsck_msg="${bgfsck_msg} in ${background_fsck_delay} seconds"
+       fi
+       echo "${bgfsck_msg}."
+
+       (sleep ${background_fsck_delay}; nice -4 fsck -B -p) 2>&1 | \
+           logger -p daemon.notice &
+}
 
 load_rc_config $name
 run_rc_command "$1"
Index: share/man/man5/rc.conf.5
===================================================================
RCS file: /usr/cvs/src/share/man/man5/rc.conf.5,v
retrieving revision 1.166
diff -u -p -r1.166 rc.conf.5
--- share/man/man5/rc.conf.5    29 Nov 2002 11:39:19 -0000      1.166
+++ share/man/man5/rc.conf.5    4 Dec 2002 23:11:53 -0000
@@ -734,6 +734,11 @@ If set to
 the system will attempt to run
 .Xr fsck 8
 in the background where possible.
+.It Va background_fsck_delay
+.Pq Vt int
+The amount of time in seconds to sleep before starting a background fsck.
+Setting this to a non-zero number may allow large applications such as
+the X server to start before disk I/O bandwidth is monopolized by fsck.
 .It Va extra_netfs_types
 .Pq Vt str
 If set to something other than

Attachment: msg48419/pgp00000.pgp
Description: PGP signature

Reply via email to