diff options
author | David E. O'Brien <obrien@FreeBSD.org> | 2001-06-16 07:16:14 +0000 |
---|---|---|
committer | David E. O'Brien <obrien@FreeBSD.org> | 2001-06-16 07:16:14 +0000 |
commit | 9d62501fd8278c7cde01dcb4d0f2b3c7c757bf86 (patch) | |
tree | 0deb0532b31a1530d216ab3fb40d91256496fc7b /etc/rc.d/fsck | |
parent | d6e91b3149feddfba4e7be11a6a946ef85474d0f (diff) | |
download | src-9d62501fd8278c7cde01dcb4d0f2b3c7c757bf86.tar.gz src-9d62501fd8278c7cde01dcb4d0f2b3c7c757bf86.zip |
Notes
Diffstat (limited to 'etc/rc.d/fsck')
-rwxr-xr-x | etc/rc.d/fsck | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/etc/rc.d/fsck b/etc/rc.d/fsck new file mode 100755 index 000000000000..ddd43024740f --- /dev/null +++ b/etc/rc.d/fsck @@ -0,0 +1,68 @@ +#!/bin/sh +# +# $NetBSD$ +# + +# PROVIDE: fsck +# REQUIRE: localswap + +. /etc/rc.subr + +name="fsck" +start_cmd="fsck_start" +stop_cmd=":" + +stop_boot() +{ + # Terminate the process (which may include the parent /etc/rc) + # if booting directly to multiuser mode. + # + if [ "$autoboot" = yes ]; then + kill -TERM $$ + fi + exit 1 +} + +fsck_start() +{ + if [ -e /fastboot ]; then + echo "Fast boot: skipping disk checks." + elif [ "$autoboot" = yes ]; then + # During fsck ignore SIGQUIT + trap : 3 + + echo "Automatic boot in progress: starting file system checks." + fsck -p + case $? in + 0) + ;; + 2) + stop_boot + ;; + 4) + echo "Rebooting..." + reboot + echo "Reboot failed; help!" + stop_boot + ;; + 8) + echo "Automatic file system check failed; help!" + stop_boot + ;; + 12) + echo "Boot interrupted." + stop_boot + ;; + 130) + stop_boot + ;; + *) + echo "Unknown error; help!" + stop_boot + ;; + esac + fi +} + +load_rc_config $name +run_rc_command "$1" |