diff options
Diffstat (limited to 'debian/local/rc')
-rw-r--r-- | debian/local/rc | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/debian/local/rc b/debian/local/rc new file mode 100644 index 00000000..d56a5f3f --- /dev/null +++ b/debian/local/rc @@ -0,0 +1,137 @@ +#!/bin/bash +PATH=/bin:/sbin + +# Start the default pager. It will bail if there is already one running. +/hurd/mach-defpager + +# Set up swap space. This will complain if no default pager is functioning. +swapon -a + +# Check filesystems. +if [ -r /fastboot ] +then + # ... or don't. + rm -f /fastboot + echo Fast boot ... skipping disk checks +elif [ $1x = autobootx ] +then + echo Automatic boot in progress... + date + + /sbin/fsck --preen --writable + + case $? in + # Successful completion + 0) + ;; + # Filesystem modified (but ok now) + 1 | 2) + ;; + # Fsck couldn't fix it. + 4 | 8) + echo "Automatic boot failed... help!" + exit 1 + ;; + # Signal that really interrupted something + 20 | 130 | 131) + echo "Boot interrupted" + exit 1 + ;; + # Special `let fsck finish' interruption (SIGQUIT) + 12) + echo "Boot interrupted (filesystem checks complete)" + exit 1 + ;; + # Oh dear. + *) + echo "Unknown error during fsck (exit status $?)" + exit 1 + ;; + esac +fi + +echo -n cleaning up left over files... +rm -f /etc/nologin +rm -f /var/lock/LCK.* +if test -d /tmp; then + + # Forcibly remove all translators in the directory. + # It is then safe to attempt to remove files and descend directories. + # All parameters must begin with "./". + function remove_translators() { + local f + for f; do + settrans -pagfS "$f" + if [ -L "$f" ] || [ ! -d "$f" ]; then + rm "$f" + else + remove_translators "$f"/* "$f"/.[!.] "$f"/.??* + rmdir "$f" + fi + done + } + + (cd /tmp + shopt -s nullglob + for f in * .[!.] .??*; do + case "$f" in + 'lost+found'|'quotas') ;; + *) remove_translators "./$f" + esac + done) + + unset -f remove_translators # because it relies on nullglob + +fi + +if test -d /var/run; then + (cd /var/run && { + find . ! -type d ! -name utmp ! -name innd.pid \ + -exec rm -f -- {} \; + cp /dev/null utmp + if grep -q ^utmp: /etc/group + then + chmod 664 utmp + chgrp utmp utmp + fi; }) +fi + +echo done + +# This file must exist for e2fsck to work. XXX +touch /var/run/mtab + +#echo -n restoring pty permissions... +#chmod 666 /dev/tty[pqrs]* +#echo done + +#echo -n updating /etc/motd... +#echo GNU\'s Not Unix Version `uname --release` > /tmp/newmotd +#egrep -v 'GNU|Version' /etc/motd >> /tmp/newmotd +#mv /tmp/newmotd /etc/motd +#echo done + +chmod 664 /etc/motd + +( + trap ":" INT QUIT TSTP + + if [ -d /etc/rc.boot ] + then + for i in /etc/rc.boot/S* + do + [ ! -f $i ] && continue + $i start + done + fi + if [ -d /etc/rc2.d ] + then + for i in /etc/rc2.d/S* + do + [ ! -f $i ] && continue + $i start + done + fi +) + +date |