aboutsummaryrefslogtreecommitdiff
path: root/files/rc
blob: 0339eafaa5a1acfc2a77f9266ee4817b648805b4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#!/bin/bash

PATH=/bin:/sbin:/hurd

# 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 -a

	case $? in
	# Successful completion
	0)
		;;
	# Filesystem modified (but ok now)
	1)
		;;
	# Filesystem modified, filesystem should be restarted
	# Ideally we would only restart the filesystem
	2 | 3)
		/sbin/reboot
		;;
	# Fsck couldn't fix it.
	4 | 5 | 8 | 9)
		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

fsysopts / --writable
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

echo -n starting daemons:

if [ -x "/sbin/syslogd" ]; then
	/sbin/syslogd	&& echo -n ' syslogd'
fi
if [ -x "/sbin/inetd" ]; then
	/sbin/inetd	&& echo -n ' inetd'
fi

if test -x /sbin/sendmail -a -r /etc/sendmail.cf; then
  /sbin/sendmail -bd -q30m	&& echo -n ' sendmail'
fi

echo .

echo -n starting translators:

if [ ! -e /proc/cmdline ]; then
	settrans -ac /proc /hurd/procfs --compatible && echo -n ' procfs'
fi

echo .

date