Delay an optional amount of time after booting before starting a

background fsck. The delay defaults to sixty seconds to allow
large applications such as the X server to start before disk I/O
bandwidth is monopolized by fsck.

Submitted by:	Brooks Davis <brooks@one-eyed-alien.net>
Sponsored by:   DARPA & NAI Labs.
This commit is contained in:
Kirk McKusick 2002-12-18 07:21:31 +00:00
parent 6d967351b4
commit 123a5dff98
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=108018
4 changed files with 27 additions and 4 deletions

View File

@ -40,6 +40,7 @@ script_name_sep=" " # Change if your startup scripts' names contain spaces
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="60" # 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).

10
etc/rc
View File

@ -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

View File

@ -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"

View File

@ -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.
It defaults to sixty seconds to 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