annotate core/rc/rc.init @ 1143:4088afe6988e

core/rc: mount /dev/pts at boot
author David Demelier <markand@malikania.fr>
date Tue, 24 Sep 2019 21:00:00 +0000
parents b7264d4a5172
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
564
79f1635bda5f core/etc: add shebang for busybox init
David Demelier <markand@malikania.fr>
parents: 560
diff changeset
1 #!/bin/sh
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 #
630
58211c615a8c core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents: 629
diff changeset
3 # /etc/rc.init -- system initialization script
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 #
405
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
5 # Copyright (c) 2019 David Demelier <markand@malikania.fr>
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
6 #
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
7 # Permission to use, copy, modify, and/or distribute this software for any
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
8 # purpose with or without fee is hereby granted, provided that the above
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
9 # copyright notice and this permission notice appear in all copies.
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
10 #
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
11 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
12 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
13 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
14 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
15 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
16 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
17 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
18 #
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
19
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 if [ -f /etc/rc.conf ]; then
405
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
21 . /etc/rc.conf
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 fi
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
23
406
0d51fe2867b5 core/sysvinit: add a banner
David Demelier <markand@malikania.fr>
parents: 405
diff changeset
24 if [ "${BANNER:-yes}" = "yes" ]; then
565
15992f10ced3 core/etc: use a more appropriate color
David Demelier <markand@malikania.fr>
parents: 564
diff changeset
25 printf "\nWelcome to \033[33;1mVanilla Linux\033[0m\n\n"
406
0d51fe2867b5 core/sysvinit: add a banner
David Demelier <markand@malikania.fr>
parents: 405
diff changeset
26 fi
0d51fe2867b5 core/sysvinit: add a banner
David Demelier <markand@malikania.fr>
parents: 405
diff changeset
27
575
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
28 if [ -n "$HOSTNAME" ]; then
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 echo "Setting hostname: $HOSTNAME"
629
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
30 hostname "$HOSTNAME"
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 fi
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
32
694
2bac0c29807f core/rc: improve messages and fix deletion
David Demelier <markand@malikania.fr>
parents: 630
diff changeset
33 echo "Setting kernel parameters."
629
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
34 sysctl -p >/dev/null 2>&1
575
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
35
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
36 echo -n "Mounting filesystems: "
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
37
629
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
38 if ! mountpoint /dev >/dev/null 2>&1; then
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
39 mount -t devtmpfs devtmpfs /dev >/dev/null 2>&1
575
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
40 echo -n "/dev "
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 fi
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
42
1143
4088afe6988e core/rc: mount /dev/pts at boot
David Demelier <markand@malikania.fr>
parents: 1091
diff changeset
43 if ! mountpoint /dev/pts >/dev/null 2>&1; then
4088afe6988e core/rc: mount /dev/pts at boot
David Demelier <markand@malikania.fr>
parents: 1091
diff changeset
44 mkdir -p /dev/pts 2>/dev/null
4088afe6988e core/rc: mount /dev/pts at boot
David Demelier <markand@malikania.fr>
parents: 1091
diff changeset
45 mount -t devpts devpts /dev/pts >/dev/null 2>&1
4088afe6988e core/rc: mount /dev/pts at boot
David Demelier <markand@malikania.fr>
parents: 1091
diff changeset
46 echo -n "/dev/pts "
4088afe6988e core/rc: mount /dev/pts at boot
David Demelier <markand@malikania.fr>
parents: 1091
diff changeset
47 fi
4088afe6988e core/rc: mount /dev/pts at boot
David Demelier <markand@malikania.fr>
parents: 1091
diff changeset
48
629
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
49 if ! mountpoint /proc >/dev/null 2>&1; then
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
50 mount -t proc proc /proc >/dev/null 2>&1
575
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
51 echo -n "/proc "
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
52 fi
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
53
629
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
54 if ! mountpoint /sys >/dev/null 2>&1; then
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
55 mount -t sysfs sysfs /sys >/dev/null 2>&1
575
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
56 echo -n "/sys "
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
57 fi
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
58
629
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
59 if ! mountpoint /run >/dev/null 2>&1; then
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
60 mount -t tmpfs tmpfs /run >/dev/null 2>&1
575
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
61 echo -n "/run "
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
62 fi
405
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
63
694
2bac0c29807f core/rc: improve messages and fix deletion
David Demelier <markand@malikania.fr>
parents: 630
diff changeset
64 echo ""
559
d6be16d7c5de core/etc: clean pid files
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
65
557
73e25417284b core/etc: take init scripts from sysvinit
David Demelier <markand@malikania.fr>
parents: 516
diff changeset
66 #
73e25417284b core/etc: take init scripts from sysvinit
David Demelier <markand@malikania.fr>
parents: 516
diff changeset
67 # Start a device service. Both eudev and busybox's mdev are supported but only
73e25417284b core/etc: take init scripts from sysvinit
David Demelier <markand@malikania.fr>
parents: 516
diff changeset
68 # one at a time must be enabled.
73e25417284b core/etc: take init scripts from sysvinit
David Demelier <markand@malikania.fr>
parents: 516
diff changeset
69 #
558
a85759a313b1 core/etc: mdev is actually named busybox.mdev
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
70 if [ -x /etc/rc.d/udevd ] && [ -x /etc/rc.d/busybox.mdev ]; then
a85759a313b1 core/etc: mdev is actually named busybox.mdev
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
71 echo "Warning: both /etc/rc.d/udevd and /etc/rc.d/busybox.mdev are enabled" 1>&2
557
73e25417284b core/etc: take init scripts from sysvinit
David Demelier <markand@malikania.fr>
parents: 516
diff changeset
72 echo "Warning: using udevd instead" 1>&2
73e25417284b core/etc: take init scripts from sysvinit
David Demelier <markand@malikania.fr>
parents: 516
diff changeset
73 fi
73e25417284b core/etc: take init scripts from sysvinit
David Demelier <markand@malikania.fr>
parents: 516
diff changeset
74
405
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
75 if [ -x /etc/rc.d/udevd ]; then
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
76 /etc/rc.d/udevd start
558
a85759a313b1 core/etc: mdev is actually named busybox.mdev
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
77 elif [ -x /etc/rc.d/busybox.mdev ]; then
a85759a313b1 core/etc: mdev is actually named busybox.mdev
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
78 /etc/rc.d/busybox.mdev start
405
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
79 fi
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
80
575
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
81 # Make sure / is ro in case of initrd.
629
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
82 mount -o remount,ro /
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
83
575
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
84 # If /etc/forcefsck is there, force check.
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
85 if [ -f /etc/forcefsck ]; then
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
86 force="-f"
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
87 fi
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
88
1143
4088afe6988e core/rc: mount /dev/pts at boot
David Demelier <markand@malikania.fr>
parents: 1091
diff changeset
89 fsck $force -A -T
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
90
575
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
91 if [ "$?" -gt 1 ]; then
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
92 echo "* Filesystem check failed"
629
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
93 sulogin
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
94 reboot
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 fi
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
96
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
97 # Remount / and enable swap as the system is ready.
629
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
98 mount -o remount,rw /
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
99 swapon -a
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
100
694
2bac0c29807f core/rc: improve messages and fix deletion
David Demelier <markand@malikania.fr>
parents: 630
diff changeset
101 # Clean pid files before starting any services.
2bac0c29807f core/rc: improve messages and fix deletion
David Demelier <markand@malikania.fr>
parents: 630
diff changeset
102 find /var/run -type f -name "*.pid" -delete
2bac0c29807f core/rc: improve messages and fix deletion
David Demelier <markand@malikania.fr>
parents: 630
diff changeset
103
569
290ca0287e5d core/rc: make busybox init start /etc/rc.start
David Demelier <markand@malikania.fr>
parents: 566
diff changeset
104 if [ -n "$TIMEZONE" ] && [ "$TIMEZONE" != "UTC" ]; then
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
105 echo -n "Setting timezone: "
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
106
516
014d018468fb core: use new FHS
David Demelier <markand@malikania.fr>
parents: 406
diff changeset
107 if [ -f /share/zoneinfo/$TIMEZONE ]; then
629
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
108 ln -sf /share/zoneinfo/$TIMEZONE /etc/localtime
694
2bac0c29807f core/rc: improve messages and fix deletion
David Demelier <markand@malikania.fr>
parents: 630
diff changeset
109 echo "$TIMEZONE"
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
110 else
569
290ca0287e5d core/rc: make busybox init start /etc/rc.start
David Demelier <markand@malikania.fr>
parents: 566
diff changeset
111 echo "$TIMEZONE not found"
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
112 fi
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
113 fi
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
114
560
2f46816f1cd6 core/etc: enable font/keymap loading
David Demelier <markand@malikania.fr>
parents: 559
diff changeset
115 # Console font and keymap.
575
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
116 if [ -n "$FONT" ]; then
560
2f46816f1cd6 core/etc: enable font/keymap loading
David Demelier <markand@malikania.fr>
parents: 559
diff changeset
117 echo "Setting font: $FONT"
629
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
118 setfont $FONT
560
2f46816f1cd6 core/etc: enable font/keymap loading
David Demelier <markand@malikania.fr>
parents: 559
diff changeset
119 fi
2f46816f1cd6 core/etc: enable font/keymap loading
David Demelier <markand@malikania.fr>
parents: 559
diff changeset
120
575
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
121 if [ -n "$KEYMAP" ]; then
560
2f46816f1cd6 core/etc: enable font/keymap loading
David Demelier <markand@malikania.fr>
parents: 559
diff changeset
122 echo "Setting keymap: $KEYMAP"
629
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
123 loadkeys $KEYMAP
560
2f46816f1cd6 core/etc: enable font/keymap loading
David Demelier <markand@malikania.fr>
parents: 559
diff changeset
124 fi
2f46816f1cd6 core/etc: enable font/keymap loading
David Demelier <markand@malikania.fr>
parents: 559
diff changeset
125
559
d6be16d7c5de core/etc: clean pid files
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
126 # Cleanup some files.
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
127 rm -f /etc/forcefsck
630
58211c615a8c core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents: 629
diff changeset
128
58211c615a8c core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents: 629
diff changeset
129 # Startup networking.
58211c615a8c core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents: 629
diff changeset
130 if [ -x /etc/rc.networking ]; then
58211c615a8c core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents: 629
diff changeset
131 /etc/rc.networking start
58211c615a8c core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents: 629
diff changeset
132 fi