bgfsck revision 197947
1135446Strhodes#!/bin/sh
2262706Serwin#
3135446Strhodes# $FreeBSD: head/etc/rc.d/bgfsck 197947 2009-10-10 22:17:03Z dougb $
4135446Strhodes#
5174187Sdougb
6135446Strhodes# PROVIDE: bgfsck
7135446Strhodes# REQUIRE: cron devfs syslogd
8135446Strhodes# KEYWORD: nojail
9135446Strhodes
10135446Strhodes. /etc/rc.subr
11135446Strhodes
12135446Strhodesname="background-fsck"
13135446Strhodesrcvar="background_fsck"
14135446Strhodesstart_cmd="bgfsck_start"
15135446Strhodesstop_cmd=":"
16135446Strhodes
17135446Strhodesbgfsck_start ()
18234010Sdougb{
19135446Strhodes	if [ -z "${rc_force}" ]; then
20170222Sdougb		background_fsck_delay=${background_fsck_delay:=0}
21170222Sdougb	else
22135446Strhodes		background_fsck_delay=0
23135446Strhodes	fi
24135446Strhodes	if [ ${background_fsck_delay} -lt 0 ]; then
25135446Strhodes		echo "Background file system checks delayed indefinitly"
26135446Strhodes		return 0
27135446Strhodes	fi
28135446Strhodes
29135446Strhodes	bgfsck_msg='Starting background file system checks'
30135446Strhodes	if [ "${background_fsck_delay}" -gt 0 ]; then
31135446Strhodes		bgfsck_msg="${bgfsck_msg} in ${background_fsck_delay} seconds"
32135446Strhodes	fi
33135446Strhodes	if [ -z "${rc_force}" ]; then
34135446Strhodes		check_startmsgs && echo "${bgfsck_msg}."
35135446Strhodes	fi
36170222Sdougb
37170222Sdougb	(sleep ${background_fsck_delay}; nice -4 fsck -B -p) 2>&1 | \
38170222Sdougb	    logger -p daemon.notice -t fsck &
39170222Sdougb}
40170222Sdougb
41170222Sdougbload_rc_config $name
42170222Sdougbrun_rc_command "$1"
43170222Sdougb