summaryrefslogtreecommitdiff
path: root/debian/rc
diff options
context:
space:
mode:
Diffstat (limited to 'debian/rc')
-rwxr-xr-xdebian/rc122
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
+