Mercurial > vanilla
annotate core/rc/rc.init @ 1091:b7264d4a5172
core/rc: no ldconfig in musl
author | David Demelier <markand@malikania.fr> |
---|---|
date | Fri, 06 Sep 2019 21:05:00 +0200 |
parents | 2bac0c29807f |
children | 4088afe6988e |
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 |
629
dbd752e285f6
core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents:
575
diff
changeset
|
43 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
|
44 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
|
45 echo -n "/proc " |
3c0d8d9fe11e
core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents:
569
diff
changeset
|
46 fi |
184
36f3ab3945d7
core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 |
629
dbd752e285f6
core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents:
575
diff
changeset
|
48 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
|
49 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
|
50 echo -n "/sys " |
3c0d8d9fe11e
core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents:
569
diff
changeset
|
51 fi |
184
36f3ab3945d7
core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 |
629
dbd752e285f6
core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents:
575
diff
changeset
|
53 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
|
54 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
|
55 echo -n "/run " |
3c0d8d9fe11e
core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents:
569
diff
changeset
|
56 fi |
405
01b5d3175215
vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents:
184
diff
changeset
|
57 |
694
2bac0c29807f
core/rc: improve messages and fix deletion
David Demelier <markand@malikania.fr>
parents:
630
diff
changeset
|
58 echo "" |
559
d6be16d7c5de
core/etc: clean pid files
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
59 |
557
73e25417284b
core/etc: take init scripts from sysvinit
David Demelier <markand@malikania.fr>
parents:
516
diff
changeset
|
60 # |
73e25417284b
core/etc: take init scripts from sysvinit
David Demelier <markand@malikania.fr>
parents:
516
diff
changeset
|
61 # 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
|
62 # one at a time must be enabled. |
73e25417284b
core/etc: take init scripts from sysvinit
David Demelier <markand@malikania.fr>
parents:
516
diff
changeset
|
63 # |
558
a85759a313b1
core/etc: mdev is actually named busybox.mdev
David Demelier <markand@malikania.fr>
parents:
557
diff
changeset
|
64 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
|
65 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
|
66 echo "Warning: using udevd instead" 1>&2 |
73e25417284b
core/etc: take init scripts from sysvinit
David Demelier <markand@malikania.fr>
parents:
516
diff
changeset
|
67 fi |
73e25417284b
core/etc: take init scripts from sysvinit
David Demelier <markand@malikania.fr>
parents:
516
diff
changeset
|
68 |
405
01b5d3175215
vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents:
184
diff
changeset
|
69 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
|
70 /etc/rc.d/udevd start |
558
a85759a313b1
core/etc: mdev is actually named busybox.mdev
David Demelier <markand@malikania.fr>
parents:
557
diff
changeset
|
71 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
|
72 /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
|
73 fi |
01b5d3175215
vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents:
184
diff
changeset
|
74 |
575
3c0d8d9fe11e
core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents:
569
diff
changeset
|
75 # 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
|
76 mount -o remount,ro / |
184
36f3ab3945d7
core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
77 |
575
3c0d8d9fe11e
core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents:
569
diff
changeset
|
78 # If /etc/forcefsck is there, force check. |
3c0d8d9fe11e
core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents:
569
diff
changeset
|
79 if [ -f /etc/forcefsck ]; then |
3c0d8d9fe11e
core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents:
569
diff
changeset
|
80 force="-f" |
3c0d8d9fe11e
core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents:
569
diff
changeset
|
81 fi |
184
36f3ab3945d7
core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
82 |
629
dbd752e285f6
core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents:
575
diff
changeset
|
83 fsck $force -A -T >/dev/null 2>&1 |
184
36f3ab3945d7
core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
84 |
575
3c0d8d9fe11e
core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents:
569
diff
changeset
|
85 if [ "$?" -gt 1 ]; then |
3c0d8d9fe11e
core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents:
569
diff
changeset
|
86 echo "* Filesystem check failed" |
629
dbd752e285f6
core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents:
575
diff
changeset
|
87 sulogin |
dbd752e285f6
core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents:
575
diff
changeset
|
88 reboot |
184
36f3ab3945d7
core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
89 fi |
36f3ab3945d7
core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
90 |
36f3ab3945d7
core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
91 # 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
|
92 mount -o remount,rw / |
dbd752e285f6
core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents:
575
diff
changeset
|
93 swapon -a |
184
36f3ab3945d7
core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
94 |
694
2bac0c29807f
core/rc: improve messages and fix deletion
David Demelier <markand@malikania.fr>
parents:
630
diff
changeset
|
95 # Clean pid files before starting any services. |
2bac0c29807f
core/rc: improve messages and fix deletion
David Demelier <markand@malikania.fr>
parents:
630
diff
changeset
|
96 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
|
97 |
569
290ca0287e5d
core/rc: make busybox init start /etc/rc.start
David Demelier <markand@malikania.fr>
parents:
566
diff
changeset
|
98 if [ -n "$TIMEZONE" ] && [ "$TIMEZONE" != "UTC" ]; then |
184
36f3ab3945d7
core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
99 echo -n "Setting timezone: " |
36f3ab3945d7
core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
100 |
516 | 101 if [ -f /share/zoneinfo/$TIMEZONE ]; then |
629
dbd752e285f6
core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents:
575
diff
changeset
|
102 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
|
103 echo "$TIMEZONE" |
184
36f3ab3945d7
core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
104 else |
569
290ca0287e5d
core/rc: make busybox init start /etc/rc.start
David Demelier <markand@malikania.fr>
parents:
566
diff
changeset
|
105 echo "$TIMEZONE not found" |
184
36f3ab3945d7
core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
106 fi |
36f3ab3945d7
core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
107 fi |
36f3ab3945d7
core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
108 |
560
2f46816f1cd6
core/etc: enable font/keymap loading
David Demelier <markand@malikania.fr>
parents:
559
diff
changeset
|
109 # Console font and keymap. |
575
3c0d8d9fe11e
core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents:
569
diff
changeset
|
110 if [ -n "$FONT" ]; then |
560
2f46816f1cd6
core/etc: enable font/keymap loading
David Demelier <markand@malikania.fr>
parents:
559
diff
changeset
|
111 echo "Setting font: $FONT" |
629
dbd752e285f6
core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents:
575
diff
changeset
|
112 setfont $FONT |
560
2f46816f1cd6
core/etc: enable font/keymap loading
David Demelier <markand@malikania.fr>
parents:
559
diff
changeset
|
113 fi |
2f46816f1cd6
core/etc: enable font/keymap loading
David Demelier <markand@malikania.fr>
parents:
559
diff
changeset
|
114 |
575
3c0d8d9fe11e
core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents:
569
diff
changeset
|
115 if [ -n "$KEYMAP" ]; then |
560
2f46816f1cd6
core/etc: enable font/keymap loading
David Demelier <markand@malikania.fr>
parents:
559
diff
changeset
|
116 echo "Setting keymap: $KEYMAP" |
629
dbd752e285f6
core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents:
575
diff
changeset
|
117 loadkeys $KEYMAP |
560
2f46816f1cd6
core/etc: enable font/keymap loading
David Demelier <markand@malikania.fr>
parents:
559
diff
changeset
|
118 fi |
2f46816f1cd6
core/etc: enable font/keymap loading
David Demelier <markand@malikania.fr>
parents:
559
diff
changeset
|
119 |
559
d6be16d7c5de
core/etc: clean pid files
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
120 # Cleanup some files. |
184
36f3ab3945d7
core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
121 rm -f /etc/forcefsck |
630
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
629
diff
changeset
|
122 |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
629
diff
changeset
|
123 # Startup networking. |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
629
diff
changeset
|
124 if [ -x /etc/rc.networking ]; then |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
629
diff
changeset
|
125 /etc/rc.networking start |
58211c615a8c
core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents:
629
diff
changeset
|
126 fi |