summaryrefslogtreecommitdiff
path: root/debian/local/rc
diff options
context:
space:
mode:
Diffstat (limited to 'debian/local/rc')
-rw-r--r--debian/local/rc137
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