summaryrefslogtreecommitdiffstats
path: root/etc
diff options
context:
space:
mode:
authormckusick <mckusick@FreeBSD.org>2002-12-18 07:21:31 +0000
committermckusick <mckusick@FreeBSD.org>2002-12-18 07:21:31 +0000
commit18817ccf4429c1df4380877beeff31ae72b98f2a (patch)
tree544002cddae912b2585aae80dba0593c50f28a78 /etc
parentf86b91ebe0dbbca444d3faa3983386c238d9fa53 (diff)
downloadFreeBSD-src-18817ccf4429c1df4380877beeff31ae72b98f2a.zip
FreeBSD-src-18817ccf4429c1df4380877beeff31ae72b98f2a.tar.gz
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.
Diffstat (limited to 'etc')
-rw-r--r--etc/defaults/rc.conf1
-rw-r--r--etc/rc10
-rw-r--r--etc/rc.d/bgfsck15
3 files changed, 22 insertions, 4 deletions
diff --git a/etc/defaults/rc.conf b/etc/defaults/rc.conf
index 954bfa8..791d2cd 100644
--- a/etc/defaults/rc.conf
+++ b/etc/defaults/rc.conf
@@ -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).
diff --git a/etc/rc b/etc/rc
index 20a8414..636fdbc 100644
--- a/etc/rc
+++ b/etc/rc
@@ -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
diff --git a/etc/rc.d/bgfsck b/etc/rc.d/bgfsck
index f032473..86c26d3 100644
--- a/etc/rc.d/bgfsck
+++ b/etc/rc.d/bgfsck
@@ -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"
OpenPOWER on IntegriCloud