Mercurial > vanilla
annotate core/rc/rc.init @ 1341:9f35c15329d1 default tip @
dev/meson: downgrade to 0.59.4 due to many regression
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 22 Dec 2021 21:52:57 +0100 |
parents | 4088afe6988e |
children |
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 | 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 |