bgfsck revision 287738
1#!/bin/sh
2#
3# $FreeBSD: stable/10/etc/rc.d/bgfsck 287738 2015-09-13 04:02:52Z hrs $
4#
5
6# PROVIDE: bgfsck
7# REQUIRE: cron devfs syslogd
8# KEYWORD: nojail
9
10. /etc/rc.subr
11
12name="background-fsck"
13rcvar="background_fsck"
14start_cmd="bgfsck_start"
15start_precmd="bgfsck_start_precmd"
16stop_cmd=":"
17
18bgfsck_start_precmd()
19{
20	if [ $($ID -u) != 0 ]; then
21		err 1 "Must be root."
22	fi
23}
24
25bgfsck_start()
26{
27	: ${background_fsck_delay=0}
28	if [ -n "${rc_force}" ]; then
29		background_fsck_delay=0
30	fi
31	if [ ${background_fsck_delay} -lt 0 ]; then
32		warn "Background file system checks delayed indefinitely"
33		return 0
34	fi
35
36	bgfsck_msg='Starting background file system checks'
37	if [ "${background_fsck_delay}" -gt 0 ]; then
38		bgfsck_msg="${bgfsck_msg} in ${background_fsck_delay} seconds"
39	fi
40	if [ -z "${rc_force}" ]; then
41		check_startmsgs && echo "${bgfsck_msg}."
42	fi
43
44	(sleep ${background_fsck_delay}; nice -4 fsck -B -p) 2>&1 | \
45	    logger -p daemon.notice -t fsck &
46}
47
48load_rc_config $name
49run_rc_command "$1"
50