diff options
author | obrien <obrien@FreeBSD.org> | 2001-06-16 07:16:14 +0000 |
---|---|---|
committer | obrien <obrien@FreeBSD.org> | 2001-06-16 07:16:14 +0000 |
commit | afad76ee76d3a58cf84a1bc6fb12c55552bc5563 (patch) | |
tree | fd0686de98f61bd8f248380d2e5aee4905a258bb /etc/rc.d/fsck | |
parent | 3cf81c35aeec9a68f04a9ff772f9d4eb26e3605b (diff) | |
download | FreeBSD-src-afad76ee76d3a58cf84a1bc6fb12c55552bc5563.zip FreeBSD-src-afad76ee76d3a58cf84a1bc6fb12c55552bc5563.tar.gz |
Import the NetBSD 1.5 RC system.
Note that `rc' and `rc.shutdown' could not be imported because we already
have files with those names.
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 0000000..ddd4302 --- /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" |