198184Sgordon#!/bin/sh 298184Sgordon# 398184Sgordon# $FreeBSD$ 498184Sgordon# 598184Sgordon 698184Sgordon# PROVIDE: bgfsck 7148274Sobrien# REQUIRE: cron devfs syslogd 8136224Smtm# KEYWORD: nojail 998184Sgordon 1098184Sgordon. /etc/rc.subr 1198184Sgordon 1298184Sgordonname="background-fsck" 1398184Sgordonrcvar="background_fsck" 14108018Smckusickstart_cmd="bgfsck_start" 1598184Sgordonstop_cmd=":" 1698184Sgordon 17238416Skevlobgfsck_start() 18108018Smckusick{ 19167437Sbrooks if [ -z "${rc_force}" ]; then 20238628Sdteske background_fsck_delay=${background_fsck_delay:-0} 21167437Sbrooks else 22167437Sbrooks background_fsck_delay=0 23167437Sbrooks fi 24167437Sbrooks if [ ${background_fsck_delay} -lt 0 ]; then 25229783Suqs echo "Background file system checks delayed indefinitely" 26167437Sbrooks return 0 27167437Sbrooks fi 28167437Sbrooks 29108018Smckusick bgfsck_msg='Starting background file system checks' 30167437Sbrooks if [ "${background_fsck_delay}" -gt 0 ]; then 31108018Smckusick bgfsck_msg="${bgfsck_msg} in ${background_fsck_delay} seconds" 32108018Smckusick fi 33167437Sbrooks if [ -z "${rc_force}" ]; then 34197947Sdougb check_startmsgs && echo "${bgfsck_msg}." 35167437Sbrooks fi 36108018Smckusick 37108018Smckusick (sleep ${background_fsck_delay}; nice -4 fsck -B -p) 2>&1 | \ 38113904Smatusita logger -p daemon.notice -t fsck & 39108018Smckusick} 40108018Smckusick 4198184Sgordonload_rc_config $name 4298184Sgordonrun_rc_command "$1" 43