diff options
Diffstat (limited to 'debian/rc')
-rwxr-xr-x | debian/rc | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/debian/rc b/debian/rc new file mode 100755 index 00000000..416f6d01 --- /dev/null +++ b/debian/rc @@ -0,0 +1,122 @@ +#!/bin/bash +PATH=/bin:/sbin + +swapon -a + +if [ -r /fastboot ] +then + 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 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 && { rm -rf -- *; cp /dev/null utmp; chmod 644 utmp; }) +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 + |