diff options
Diffstat (limited to 'etc')
-rw-r--r-- | etc/defaults/rc.conf | 1 | ||||
-rw-r--r-- | etc/rc | 10 | ||||
-rw-r--r-- | etc/rc.d/bgfsck | 15 |
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). @@ -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" |